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事件.
这是为什么?
最佳答案
使用类似代码更改元素不会触发事件处理程序.但是你可以自己做:
else {
$matchingOption.attr('selected','selected').trigger('change');
}