当我使用Val()设置SELECT值时,为什么jQuery更改事件不触发?

当我使用Val()设置SELECT值时,为什么jQuery更改事件不触发?

中的逻辑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>


呼如林
浏览 2642回答 3
3回答

波斯汪

因为change事件需要由用户发起的实际浏览器事件,而不是通过javascript代码。而是这样做:$("#single").val("Single2").trigger('change');或$("#single").val("Single2").change();

MMTTMM

我相信您可以手动触发更改事件trigger():$("#single").val("Single2").trigger('change');虽然它不会自动开火,但我不知道。
打开App,查看更多内容
随时随地看视频慕课网APP