提问者:小点点

为什么jQuery.on()不处理javascript动态创建的事件?[副本]


我有一个vanilla javascript系统在下拉菜单上触发“更改”事件:

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

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

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

我错过了什么?


共1个答案

匿名用户

默认值是构造的事件不在DOM树中冒泡。如果您想这样做,您需要明确地提出要求:

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

如果事件没有冒泡,它将无法达到document级别,委托的处理程序也不会被调用。