--- title: MouseEvent.buttons slug: Web/API/MouseEvent/buttons translation_of: Web/API/MouseEvent/buttons ---
The MouseEvent.buttons read-only property indicates which buttons are pressed on the mouse (or other input device) when a mouse event is triggered.
Each button that can be pressed is represented by a given number (see below). If more than one button is pressed, the button values are added together to produce a new number. For example, if the secondary (2) and auxilary (4) buttons are pressed simultaneously, the value is 6 (i.e., 2 + 4).
Note: Do not confuse this property with the {{domxref("MouseEvent.button")}} property. The {{domxref("MouseEvent.buttons")}} property indicates the state of buttons pressed during any kind of mouse event, while the {{domxref("MouseEvent.button")}} property only guarantees the correct value for mouse events caused by pressing or releasing one or multiple buttons.
var buttonsPressed = instanceOfMouseEvent.buttons
A number representing one or more buttons. For more than one button pressed simultaneously, the values are combined (e.g., 3 is primary + secondary).
0 : No button or un-initialized1 : Primary button (usually the left button)2 : Secondary button (usually the right button)4 : Auxiliary button (usually the mouse wheel button or middle button)8 : 4th button (typically the "Browser Back" button)16 : 5th button (typically the "Browser Forward" button)This example logs the buttons property when you trigger a {{Event("mousedown")}} event.
<p>Click anywhere with one or more mouse buttons.</p> <p id="log">buttons: </p>
let button = document.querySelector('#button');
let log = document.createTextNode('?');
document.addEventListener('mousedown', logButtons);
function logButtons(e) {
log.data = `${e.buttons} (mousedown)`;
}
document.addEventListener('mouseup', unpress);
function unpress(e) {
log.data = `${e.buttons} (mouseup)`
}
document.querySelector('#log').appendChild(log)
{{EmbedLiveSample("Example")}}
| Specification | Status | Comment |
|---|---|---|
| {{SpecName('DOM3 Events','#widl-MouseEvent-buttons','MouseEvent.buttons')}} | {{Spec2('DOM3 Events')}} | Initial definition |
{{Compat("api.MouseEvent.buttons")}}
Firefox supports the buttons attribute on Windows, Linux (GTK), and macOS with the following restrictions:
buttons value.buttons attribute always returns 0 because there is no platform API for implementing this feature.