Firefox奇怪的右击事件冒泡行为
Firefox strange right click event bubbling behavior
我在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:& lt;div> & lt; span>Test & lt;/div>
如果您右键单击单词"test",则在firefox(21)的控制台中打印单词"body"。不支持ie10/Chrome。
如何防止在Firefox中引发此事件?
这行不通:
$("body").on("click", "span", function(e) {
e.preventDefault();
e.stopPropagation();
});
我遇到了同样的问题。我有一个小提琴,如果你在绿色的正方形左键单击事件是由两个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。
这可以通过使用event.which
来检查哪个鼠标按钮被按下(从附加到文档的事件侦听器)来修复。参见https://stackoverflow.com/a/12430795/1170489。
Make
$(document).on("click",function(e) {
console.log('body');
console.log(e.isPropagationStopped());
});
脚本中的第一个处理程序。当您按照自己的方式操作时,文档单击处理程序会隐藏span和div处理程序。
相关文章:
- 如何使用2个事件单击1个日历
- Asp.net按钮事件点击不做回发.有可能吗
- 如何使用onclick事件点击一个图像,并让它更改同一网页上的另一个图像
- 在 javascript 事件单击后清空输入
- 在元素 SVG 中使用 JavaScript 或 jQuery 进行事件单击
- fullCalendar动态事件单击行为
- 错误:'这'对象不正确;在JQuery中单击事件-单击时的意外行为
- 触发点击事件点击事件,触摸屏
- 事件点击不在td元素中的多个锚点标记上处理同一个类
- OO Javascript/jQuery事件点击处理程序
- 如何启用事件单击仅在指定的小时范围内
- 完整日历事件单击未触发
- 打开选择之前的事件.(单击工作速度不够快)
- 在 JavaScript 中,函数不会在事件单击时触发
- 主干分组依据集合仅在一次事件单击后呈现
- 融合地图事件点击
- 如何提高事件点击量,将字段添加到 Ajax
- 当用户使用 jquery 的点击事件点击表格时,如何选择表格的行
- 右击潜水与点击事件不39;t在上下文菜单中显示链接选项
- Firefox奇怪的右击事件冒泡行为