此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

Element:click 事件

基线 广泛可用 *

自 2015年7月 起,此特性已在主流浏览器中得到支持,可在大多数设备和浏览器版本中正常使用。

* 此特性的某些部分的支持程度可能有所不同。

当发生以下任一情况时,元素会收到 click 事件:

  • 定点设备按钮(例如鼠标的主按钮)在指针位于元素内时被按下并释放。
  • 在该元素上执行了触摸手势。
  • 任何等效于点击的用户交互,例如在元素获得焦点时按下 Space 键或 Enter 键。请注意,这仅适用于具有默认按键事件处理器的元素,因此不包括通过设置 tabindex 属性而变得可聚焦的其他元素。

如果在某个元素上按下按钮,并在释放按钮之前将指针移出该元素,则事件会在同时包含这两个元素的最具体的祖先元素上触发。

click 会在 mousedownmouseup 事件均已按该顺序触发之后触发。

该事件是与设备无关的事件——意味着它可由触摸、键盘、鼠标以及辅助技术提供的任何其他机制激活。

语法

在类似 addEventListener() 这样的方法中使用事件名称,或设置事件处理器属性。

js
addEventListener("click", (event) => { })

onclick = (event) => { }

事件类型

PointerEvent,继承自 MouseEvent

Event UIEvent MouseEvent PointerEvent

备注:在规范的早期版本中,该事件的事件类型是 MouseEvent。更多信息请参见浏览器兼容性

使用说明

传入 click 事件处理器的 PointerEvent 对象,其 detail 属性会被设置为 target 被点击的次数。换言之,双击时 detail 为 2,三击时为 3,依此类推。该计数器会在一段短暂的无点击间隔后重置;该间隔具体多长可能因浏览器和平台而异。该间隔也很可能受用户偏好设置影响;例如,无障碍选项可能会延长该间隔,以便更容易通过自适应界面执行多次点击。

示例

本示例显示在 <button> 上连续点击的次数。

HTML

html
<button>点击</button>

JavaScript

js
const button = document.querySelector("button");

button.addEventListener("click", (event) => {
  button.textContent = `点击次数:${event.detail}`;
});

结果

尝试快速、反复地点击按钮以增加点击次数。如果在点击之间稍作停顿,计数将会重置。

规范

规范
Pointer Events
# click
HTML
# handler-onclick

浏览器兼容性

参见