Element: click event
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
* Some parts of this feature may have varying levels of support.
An element receives a click event when any of the following occurs:
- A pointing-device button (such as a mouse's primary button) is both pressed and released while the pointer is located inside the element.
- A touch gesture is performed on the element.
- Any user interaction that is equivalent to a click, such as pressing the Space key or Enter key while the element is focused. Note that this only applies to elements with a default key event handler, and therefore, excludes other elements that have been made focusable by setting the
tabindexattribute.
If the button is pressed on one element and the pointer is moved outside the element before the button is released, the event is fired on the most specific ancestor element that contained both elements.
click fires after both the mousedown and mouseup events have fired, in that order.
The event is a device-independent event — meaning it can be activated by touch, keyboard, mouse, and any other mechanism provided by assistive technology.
Syntax
Use the event name in methods like addEventListener(), or set an event handler property.
addEventListener("click", (event) => { })
onclick = (event) => { }
Event type
A PointerEvent. Inherits from MouseEvent.
Note:
In earlier versions of the specification, the event type for this event was a MouseEvent. Check browser compatibility for more information.
Usage notes
The PointerEvent object passed into the event handler for click has its detail property set to the number of times the target was clicked. In other words, detail will be 2 for a double-click, 3 for triple-click, and so forth. This counter resets after a short interval without any clicks occurring; the specifics of how long that interval is may vary from browser to browser and across platforms. The interval is also likely to be affected by user preferences; for example, accessibility options may extend this interval to make it easier to perform multiple clicks with adaptive interfaces.
Examples
This example displays the number of consecutive clicks on a <button>.
HTML
<button>Click</button>
JavaScript
const button = document.querySelector("button");
button.addEventListener("click", (event) => {
button.textContent = `Click count: ${event.detail}`;
});
Result
Try making rapid, repeated clicks on the button to increase the click count. If you take a break between clicks, the count will reset.
Specifications
| Specification |
|---|
| Pointer Events> # click> |
| HTML> # handler-onclick> |