【问题标题】:Why jQuery .on() doesn't handle javascript dynamically created events? [duplicate]为什么 jQuery .on() 不处理 javascript 动态创建的事件? [复制]
【发布时间】:2021-03-17 13:27:03
【问题描述】:

我有一个普通的 Javascript 系统在下拉菜单上触发 change 事件:

const event = new Event('change');
select.dispatchEvent(event);

它可以通过addEventListener()$('select').on() 完美处理事件 但如果 .on() 函数设置为目标动态元素,则不起作用:

$(document).on('change', 'select', function() {
    console.log('should');
});

我错过了什么?

【问题讨论】:

    标签: javascript jquery dom-events


    【解决方案1】:

    默认是构造事件冒泡DOM树。如果你想这样,你需要明确地要求它:

    const event = new Event("change", { bubbles: true });
    

    如果事件没有冒泡,它不会达到document 级别,并且不会调用委托的处理程序。

    【讨论】:

    • 这就是我所缺少的。谢谢尖尖!
    猜你喜欢
    • 1970-01-01
    • 2017-01-13
    • 1970-01-01
    • 1970-01-01
    • 2019-01-25
    • 1970-01-01
    • 2013-02-22
    • 2019-01-29
    • 2019-01-03
    相关资源
    最近更新 更多