Jquery: detect if middle or right mouse button is clicked, if so, do this:
Solution 1:
You may want to trap the mousedown event, and you also need to prevent the oncontextmenu event to stop the context menu from coming up during the right click event.
$("h2").live('mousedown', function(e) {
if( (e.which == 1) ) {
alert("left button");
}if( (e.which == 3) ) {
alert("right button");
}else if( (e.which == 2) ) {
alert("middle button");
}
e.preventDefault();
}).live('contextmenu', function(e){
e.preventDefault();
});
UPDATE: .live() has been deprecated since jQuery 1.9. Use .on() instead.
$("h2").on('mousedown', function(e) {
if (e.which == 1) {
alert("left button");
} else if (e.which == 3) {
alert("right button");
} else if (e.which == 2) {
alert("middle button");
}
e.preventDefault();
});
Solution 2:
I've noticed some oddities in the past with using the click event for anything but a regular left-click. I don't recall the details, but if you change "click" to "mousedown" or "mouseup" you should have better results.
Solution 3:
Now
button
has been fouled up beyond all recognition. According to W3C its values should be:
- Left button – 0
- Middle button – 1
- Right button – 2
According to Microsoft its values should be:
- Left button – 1
- Middle button – 4
- Right button – 2
No doubt the Microsoft model is better than W3C’s. 0 should mean “no button pressed”, anything else is illogical.
From http://www.quirksmode.org/js/events_properties.html