--- 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.