Detect left mouse button press
Updated answer. The following will detect if the left and only the left mouse button is pressed:
function detectLeftButton(evt) {
evt = evt || window.event;
if ("buttons" in evt) {
return evt.buttons == 1;
}
var button = evt.which || evt.button;
return button == 1;
}
For much more information about handling mouse events in JavaScript, try http://unixpapa.com/js/mouse.html
There is now a W3C standard event.buttons
property supported by IE9 in standards mode, and Gecko 15+.
The W3C completely stuffed up the event.button property, so for a standards compliant browser event.button is 0, but for browsers created before the standard, event.button is 1.
So code must avoid using event.button
except for older browsers. The following code should work:
function detectLeftButton(event) {
if (event.metaKey || event.ctrlKey || event.altKey || event.shiftKey) {
return false;
} else if ('buttons' in event) {
return event.buttons === 1;
} else if ('which' in event) {
return event.which === 1;
} else {
return (event.button == 1 || event.type == 'click');
}
}