gpt4 book ai didi

javascript - Firefox 奇怪的右键事件冒泡行为

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:19:03 25 4
gpt4 key购买 nike

我在 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”一词,firefox (21) 的控制台中将打印出“body”一词。不在 IE 10/Chrome 中。

如何防止在 Firefox 中引发此事件?

这不起作用:

$("body").on("click", "span", function(e) {
e.preventDefault();
e.stopPropagation();
});

最佳答案

我遇到了同样的问题。我有一个 fiddle ,如果您左键单击绿色方 block ,事件将由 handler2(在 div 上)和 handler3(在文档上)处理。但是,如果您右键单击,则只会调用 handler3,这意味着没有一种简单的方法可以在 div 中右键单击时停止传播。

jsfiddle

// requisite jsfiddle code snippet
function handler2() {
console.log('in handler2');
}

function handler3() {
console.log('in handler3');
}

$(document).ready(function () {
$('#block2').on('click', handler2);
$(document).on('click', handler3);
});

我也试过设置 dom.event.contextmenu.enabled 和 services.sync.prefs.sync.dom.event.contextmenu.enabled,但它们对此行为没有影响。

关于javascript - Firefox 奇怪的右键事件冒泡行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16898330/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com