Chrome:
以下代码适用于Chrome。
$('.links').click(function(e) {
if(e.which == 2) {
console.log(e.which); // prints 2
//e.preventDefault();
//e.stopPropagation();
return false;
}
});
Firefox:
由于上面的代码没有捕获firefox中的中键/鼠标滚轮点击事件,我尝试了以下能够捕捉鼠标滚轮点击事件。
$('.links').mousedown(function(e) {
if(e.which == 2) {
console.log(e.which); // prints 2
//e.preventDefault();
//e.stopPropagation();
return false;
}
});
以上代码打印2.但返回false;不管用。
当我用alert替换console.log时它会起作用。但我不能&不想使用警报。
我也尝试过mouseup,mousewheel事件。但它没有用。
我也试过了attachEvent,但是我收到了一个错误(attchEvent不是函数)。
我正在使用下面提到的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
我需要你宝贵的意见。
答案 0 :(得分:0)
所有点击默认操作都应该是可取消的。这是这一重要事件的重点之一。但是,某些浏览器有例外:
答案 1 :(得分:0)
我遇到与firefox相同的问题,与
有关preventDefault();
在Safari,Chrome,Opera甚至IE9中都可以正常运行(不是开玩笑) 但是,经过大量阅读后,我看到该网站正在使用旧的jquery版本(1.10),然后更新到最新版本(2.1.4),即使在Firefox中也取消了该操作。
另一件需要考虑的事情是我使用了名为“keyPressed”的变量,如:
var keyPressed = event.keyCode || event.which || event.charCode
因此,每个浏览器都很容易识别关键事件。
希望这有帮助!
答案 2 :(得分:0)
我在中间点击时遇到了FF中的类似问题。
以下脚本解决了我的问题,它也适用于FF。
$(document).on('click', $(".content"), function(e) {
if(e.button==1) {
e.preventDefault();
return false;
}
})