当值由 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>

最佳答案

因为 change 事件需要由用户而不是通过 javascript 代码发起的实际浏览器事件。

改为这样做:

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

要么
$("#single").val("Single2").change();

关于jquery - 为什么当我使用 val() 设置 select 的值时 jquery change 事件没有触发?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4672505/

10-12 13:35