HTML
<select multiple="multiple" id="myID" name="myName">
<option value="blue">blue</option>
<option value="red">red</option>
<option value="green">green</option>
</select>
jQuery:
$('select')
.change(function(){
alert("Change Event Triggered On:" + $(this).attr("value"));
})
それは、そのままで機能します。複数選択の項目をクリックすると、アラートがトリガーされます。
ただし、次のようにjQueryを介して選択メニューから要素を「選択」すると、次のようになります。
$('#myOtherSelector')
.click(function(){
var $matchingOption = [goes and selects the specific OPTION to toggle]
if ($matchingOption.attr("selected")){
$matchingOption.removeAttr("selected")
}else{
$matchingOption.attr("selected","selected");
}
})
このスクリプトは、SELECTED属性を変更し、オプションリストを視覚的に更新するという点で機能しますが、そのシナリオではonchangeイベントはトリガーされません。
何故ですか?