当我使用val()设置select的值时,为什么jquery change事件没有触发?

jQuery HTML

村村Pro

2020-03-23

change()当值由设置时事件处理程序中的逻辑未运行val(),但当用户使用鼠标选择值时,该逻辑确实运行。为什么是这样?

<select id="single">
    <option>Single</option>
    <option>Single2</option>
</select>

<script>
    $(function() {
        $(":input#single").change(function() {
           /* Logic here does not execute when val() is used */
        });
    });

    $("#single").val("Single2");
</script>

第2808篇《当我使用val()设置select的值时,为什么jquery change事件没有触发?》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

1个回答
小小 2020.03.23

据我所读的API。仅当用户单击选项时才触发该事件。

http://api.jquery.com/change/

对于选择框,复选框和单选按钮,当用户使用鼠标进行选择时会立即触发该事件,但是对于其他元素类型,该事件将推迟到该元素失去焦点之前。

问题类别

JavaScript Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android