为什么在我使用val()设置select的值时不会触发jquery change事件?

当值由val()设置时,change()事件处理程序中的逻辑不会运行,但当用户用鼠标选择值时,它会运行。为什么会这样

<选择id=“single”>
<选项>单个&lt/选项>
<选项>Single2&lt/选项>
&lt/选择>
<脚本>
$(函数(){
$(“:input#single”).change(函数(){
/*这里的逻辑在使用val()时不执行*/
});
});
美元(“#单”).val(“单2”);
&lt/脚本>

因为change事件需要用户启动实际的浏览器事件,而不是通过javascript代码启动

改为这样做:

$(“#single”).val(“Single2”).trigger('change');

$(“#single”).val(“Single2”).change();

发表评论