为什么 jQuery .on() 不处理 javascript 动态创建的事件?
Why jQuery .on() doesn't handle javascript dynamically created events?
我有一个香草 Javascript 系统在下拉菜单上触发 change
事件:
const event = new Event('change');
select.dispatchEvent(event);
通过addEventListener()
或$('select').on()
完美处理事件
但如果 .on()
函数设置为目标动态元素,则它不起作用:
$(document).on('change', 'select', function() {
console.log('should');
});
我错过了什么?
构造事件的默认设置是不冒泡到DOM树。如果你想要它,你需要明确地要求它:
const event = new Event("change", { bubbles: true });
如果事件没有冒泡,它就不会达到 document
级别,委托处理程序也不会被调用。
我有一个香草 Javascript 系统在下拉菜单上触发 change
事件:
const event = new Event('change');
select.dispatchEvent(event);
通过addEventListener()
或$('select').on()
完美处理事件
但如果 .on()
函数设置为目标动态元素,则它不起作用:
$(document).on('change', 'select', function() {
console.log('should');
});
我错过了什么?
构造事件的默认设置是不冒泡到DOM树。如果你想要它,你需要明确地要求它:
const event = new Event("change", { bubbles: true });
如果事件没有冒泡,它就不会达到 document
级别,委托处理程序也不会被调用。