2015-12-11 49 views
1

努力實現這一點:如果選擇選項不是:禁用,則removeClass

var selectedOption = $("select option"); 

if(selectedOption.is(":disabled")){ 
    $('#opacity').addClass('opacity'); 
} else if(selectedOption.is(":enabled")){ 
    console.log("not"); // looking to removeClass('opacity'); 
} 

我的HTML

<select name="url" id="listUpdate"> 
    <option selected="" disabled="" value="">Choose</option> 
    <option value="http://www.ulr1.ee">ulr1</option> 
    <option value="http://www.url2.ee">ulr1</option> 
    <option value="www.url3.ee">ulr1</option> 
</select> 

類不透明度得到很好的補充,雖然我不能與刪除:當選項從:disabled選項更改時啓用。有什麼建議麼?

回答

2

正如我所看到的評論你可以通過類名作爲第一個參數,第二個是作爲條件檢查利用.toggleClass()方法:

$('select').on('change', function() { 
 
    $('#opacity').toggleClass('opacity', $(":selected", this).is(':disabled')); 
 
}).change();
button { 
 
    background: blue; 
 
    color: white; 
 
} 
 
.opacity{opacity:0.2;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select name="url" id="listUpdate"> 
 
    <option selected="" disabled="" value="">Choose</option> 
 
    <option value="http://www.ulr1.ee">ulr1</option> 
 
    <option value="http://www.url2.ee">ulr1</option> 
 
    <option value="www.url3.ee">ulr1</option> 
 
</select> 
 

 
<button id='opacity'>Opacity</button>

+1

更符合我的需求,更清潔。謝謝 – user3615851

+0

不客氣@ user3615851。 – Jai

1

你需要做一個簡單的變化:

var selectedOption = $("select option:selected"); 

或者使用:

} else if (!selectedOption.is(":disabled")) { 

最後,確保你這個功能結合到.change()事件的select而不僅僅是document的就緒功能:

$(function() { 
    $(select).change(function() { 
    if(selectedOption.is(":disabled")){ 
     $('#opacity').addClass('opacity'); 
    } else if(selectedOption.is(":enabled")){ 
     console.log("not"); // looking to removeClass('opacity'); 
    } 
    }); 
}); 
+0

遺憾的是不能得到工作。你可以張貼小提琴嗎?我嘗試過,但仍然沒有改變,當我改變選擇 – user3615851

+0

'select'應該用正確的選擇器替換。 –

+1

對不起,錯字使用了錯誤的選擇器。謝謝一堆! – user3615851

相關問題