Event
注意:此功能在 Web Workers 中可用。
Event 接口代表在 EventTarget 上发生的事件。
事件可以由用户操作触发,例如点击鼠标按钮或按下键盘,也可以由 API 生成以表示异步任务的进度。它还可以通过编程方式触发,例如通过调用元素的 HTMLElement.click() 方法,或者通过定义事件,然后使用 EventTarget.dispatchEvent() 将其发送到指定的 target。
事件有很多类型,其中一些使用基于主 Event 接口的其他接口。Event 本身包含所有事件共有的属性和方法。
许多 DOM 元素可以设置为接受(或“监听”)这些事件,并执行代码来处理(或“响应”)它们。事件处理程序通常使用 EventTarget.addEventListener() 连接(或“附加”)到各种 HTML 元素(例如 <button>、<div>、<span> 等),这通常取代了使用旧的 HTML 事件处理属性。此外,如果正确添加,这些处理程序也可以使用 removeEventListener() 在需要时断开连接。
注意:一个元素可以有多个此类处理程序,即使是针对完全相同的事件——特别是如果独立的代码模块分别附加了它们,各自用于其独立的用途。(例如,一个网页中有一个广告模块和一个统计模块都在监控视频观看。)
当存在许多嵌套的元素,每个元素都有自己的处理程序时,事件处理可能会变得非常复杂——尤其是在父元素接收与其子元素相同的事件,因为它们在“空间上”重叠,事件实际上发生在两者中,并且此类事件的处理顺序取决于每个触发的处理程序的 事件冒泡 设置。
基于 Event 的接口
以下是基于主 Event 接口的接口列表,并链接到 MDN API 参考中的相应文档。
请注意,所有事件接口的名称都以“Event”结尾。
AnimationEventAudioProcessingEvent已弃用BeforeUnloadEventBlobEventClipboardEventCloseEventCompositionEventCustomEventDeviceMotionEventDeviceOrientationEventDragEventErrorEventFetchEventFocusEventFontFaceSetLoadEventFormDataEventGamepadEventHashChangeEventHIDInputReportEventIDBVersionChangeEventInputEventKeyboardEventMediaStreamEvent已弃用MessageEventMouseEventMutationEvent已弃用OfflineAudioCompletionEventPageTransitionEventPaymentRequestUpdateEventPointerEventPopStateEventProgressEventRTCDataChannelEventRTCPeerConnectionIceEventStorageEventSubmitEventTimeEventTouchEventTrackEventTransitionEventUIEventWebGLContextEventWheelEvent
构造函数
Event()-
创建一个
Event对象,并将其返回给调用者。
实例属性
Event.bubbles只读-
一个布尔值,指示事件是否会通过 DOM 冒泡。
Event.cancelable只读-
一个布尔值,指示事件是否可取消。
Event.composed只读-
一个布尔值,指示事件是否可以在 Shadow DOM 和普通 DOM 之间的边界上传播。
Event.currentTarget只读-
对当前注册的事件 target 的引用。这是事件当前预定要发送到的对象。在重新定向过程中,此对象可能已被更改。
Event.defaultPrevented只读-
指示是否通过调用
event.preventDefault()取消了事件。 Event.eventPhase只读-
指示正在处理事件流的哪个阶段。它是以下数字之一:
NONE、CAPTURING_PHASE、AT_TARGET、BUBBLING_PHASE。 Event.isTrusted只读-
指示事件是由浏览器(例如,在用户单击后)还是由脚本(例如,使用事件创建方法)发起的。
Event.srcElement只读 已弃用-
Event.target属性的别名。请使用Event.target。 Event.target只读-
对事件最初分派到的对象的引用。
Event.timeStamp只读-
事件创建时的时间(以毫秒为单位)。根据规范,此值是自纪元以来的时间——但实际上,浏览器的定义各不相同。此外,目前正在努力将其更改为
DOMHighResTimeStamp。 Event.type只读-
标识事件类型的名称。
旧版和非标准属性
Event.cancelBubble已弃用-
Event.stopPropagation()的历史别名,应使用该方法替代。在事件处理程序返回之前将其值设置为true会阻止事件的传播。 Event.explicitOriginalTarget非标准 只读-
事件的显式原始 target。
Event.originalTarget非标准 只读-
事件的原始 target,在任何重新定向之前。
Event.returnValue已弃用-
为确保现有网站继续正常工作而仍然支持的历史属性。请使用
Event.preventDefault()和Event.defaultPrevented。 Event.scoped只读 已弃用-
一个布尔值,指示给定事件是否会通过 shadow root 冒泡到标准 DOM。请使用
composed。
实例方法
Event.composedPath()-
返回事件的路径(将为其调用侦听器的对象数组)。如果 shadow root 是以其
ShadowRoot.modeclosed 创建的,则不包括 shadow tree 中的节点。 Event.preventDefault()-
取消事件(如果事件可取消)。
Event.stopImmediatePropagation()-
对于此特定事件,阻止调用任何其他侦听器。这包括附加到同一元素的侦听器以及附加到稍后(例如,在捕获阶段)将遍历的元素的侦听器。
Event.stopPropagation()-
停止事件在 DOM 中的进一步传播。
已废弃的方法
Event.initEvent()已弃用-
初始化创建的 Event 的值。如果事件已分派,则此方法无效。请使用构造函数(
Event())进行替代。
规范
| 规范 |
|---|
| DOM # interface-event |
浏览器兼容性
加载中…