【发布时间】:2015-02-28 17:58:12
【问题描述】:
铬:
以下代码在 Chrome 中运行。
$('.links').click(function(e) {
if(e.which == 2) {
console.log(e.which); // prints 2
//e.preventDefault();
//e.stopPropagation();
return false;
}
});
火狐:
由于上面的代码在firefox中没有捕捉到中键/鼠标滚轮点击事件,我尝试了以下能够捕捉鼠标滚轮点击事件的代码。
$('.links').mousedown(function(e) {
if(e.which == 2) {
console.log(e.which); // prints 2
//e.preventDefault();
//e.stopPropagation();
return false;
}
});
上面的代码打印 2。但返回 false;不管用。
当我将 console.log 替换为 alert 时,它就可以工作了。但我不能也不想使用警报。
我也试过 mouseup,mousewheel 事件。但它没有用。
我也尝试了attachEvent,但出现错误(attchEvent 不是函数)。
我正在使用下面提到的 js 文件:
- jQuery-1.10.2.min.js
- jquery.easyui.min.js
- jquery-ui.js
- jquery.ui.core.js
您可以参考下面的链接以获得更清晰的信息。
jsfiddle.net/nilamnaik1989/vntLyvd2/3
jsfiddle.net/nilamnaik1989/2Lq6mLdp
http://jsfiddle.net/nilamnaik1989/powjm7qf/
http://jsfiddle.net/nilamnaik1989/q6kLvL1p/
以下是一些不错的链接。但无论如何它并没有解决我的问题。
event.preventDefault() vs. return false
event.preventDefault() vs. return false (no jQuery)
http://www.markupjavascript.com/2013/10/event-bubbling-how-to-prevent-it.html
我需要您的宝贵意见。
【问题讨论】:
-
在 Chrome && FF 中为我工作:jsfiddle.net/vntLyvd2/1
-
@geedubb OP 表示警报有效,因此您的演示毫无意义。
-
@theonlygusti 不,你错了。这是与 console.log jsfiddle.net/vntLyvd2/2 没有任何区别。 FF & chrome 都支持控制台。 IE 没有
-
为什么你认为停止点击不起作用?当我尝试它时,默认操作被禁止。
-
@geedubb 感谢您的回复。请查看这两个链接。 jsfiddle.net/nilamnaik1989/vntLyvd2/3jsfiddle.net/nilamnaik1989/2Lq6mLdp
标签: javascript jquery firefox mouseevent