【发布时间】:2013-05-29 16:44:51
【问题描述】:
我在 Firefox 中遇到了一个奇怪的问题,即右键单击子节点时在文档节点上引发单击事件。
这段代码说明了这个问题:http://jsfiddle.net/RyDZU/5/
更新版本:http://jsfiddle.net/RyDZU/10/
$(document).on("click","span",function(e) {
console.log('span');
console.log(e.isPropagationStopped());
});
$(document).on("click","div",function(e) {
console.log('div');
console.log(e.isPropagationStopped());
e.stopPropagation();
console.log(e.isPropagationStopped());
});
$(document).on("click",function(e) {
console.log('body');
console.log(e.isPropagationStopped());
});
HTML:
如果您右键单击单词“test”,则单词“body”会打印在 firefox (21) 的控制台中。不在 IE 10 / Chrome 中。
如何防止在 Firefox 中引发此事件?
这不起作用:
$("body").on("click", "span", function(e) {
e.preventDefault();
e.stopPropagation();
});
【问题讨论】:
-
记录了一个错误:bugzilla.mozilla.org/show_bug.cgi?id=184051。我想您必须检测单击了哪个鼠标按钮,如果在 Firefox 上单击鼠标右键或鼠标中键,则将其取消。
-
@Mr.DucNguyen 哇,这个错误可以追溯到 2002 年?!
-
是的,它仍然有效 :),它可能会在未来十年内“修复”,但我对此表示怀疑,因为我们已经进入了“触摸”事件时代
标签: javascript jquery firefox