【发布时间】:2023-03-12 19:23:01
【问题描述】:
在内存中的 html 块中的复选框上似乎没有触发 click 事件。它确实为按钮而不是复选框触发。
这是小提琴:http://jsfiddle.net/X2en3/18/
还有代码:
使用 .trigger() 触发: 使用 .click() 触发:
var working = $('<div><input type="checkbox" id="myBox"/><button id="myButton"/><div>'),
checkbox = working.find('#myBox'),
button = working.find('#myButton'),
stage;
function boxclicked() {$('#' + stage).append('--checkbox');}
function buttonclicked() {$('#' + stage).append('--button');}
working.delegate('#myBox', {click: boxclicked});
working.delegate('#myButton', {click: buttonclicked});
stage = 'trigger';
checkbox.trigger('click');
button.trigger('click');
stage = 'click';
checkbox.click();
button.click();
这只发生在 Chrome 和 JQuery 1.9.1 上。 Firefox/IE 9 和以前版本的 JQuery 都可以正常工作。
感谢任何帮助。
【问题讨论】:
-
附加测试:附加到正文使其工作,并且使用直接绑定而不是事件委托也可以工作(它不绑定到正文。)这表明不属于的复选框上的单击事件DOM 不会在 chrome 中冒泡。
标签: jquery google-chrome