问题
I'm trying to find a way of disabling the default action of the mouse wheel button which is to open the link in a new tab.
Is that possible?
回答1:
Bind a generic click event handler that specifically checks for middle clicks. Within that event handler, call e.preventDefault():
$("#foo").on('click', function(e) {
if( e.which == 2 ) {
e.preventDefault();
}
});
Note that not all browsers support preventing this default action. For me, it only works in Chrome. Firefox, Opera and IE9 all do not raise the click event with middle mouse click. They do raise mouseup and mousedown.
回答2:
This works for me...
$(document).on("mousedown", "selector", function (ev) {
if (ev.which == 2) {
ev.preventDefault();
alert("middle button");
return false;
}
});
回答3:
Disable mouse wheel event by using JAVASCRIPT :
In IE:
document.attachEvent('onmousewheel', function(e){
if (!e) var e = window.event;
e.returnValue = false;
e.cancelBubble = true;
return false;
}, false);
In Safari:
document.addEventListener('mousewheel', function(e){
e.stopPropagation();
e.preventDefault();
e.cancelBubble = false;
return false;
}, false);
In Opera:
document.attachEvent('mousewheel', function(e){
if (!e) var e = window.event;
e.returnValue = false;
e.cancelBubble = true;
return false;
}, false);
In Firefox:
document.addEventListener('DOMMouseScroll', function(e){
e.stopPropagation();
e.preventDefault();
e.cancelBubble = false;
return false;
}, false);
回答4:
My code:
$(document).on('auxclick', 'a', function(e) {
if (e.which === 2) { //middle Click
e.preventDefault();
e.stopPropagation();
e.stopImmediatePropagation();
return false;
}
return true;
来源:https://stackoverflow.com/questions/11392318/how-to-disable-the-mouse-wheel-click-button