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 事件。
这是为什么?