Ikeq ChengIkeq Cheng

The whole problem with the world is that fools and fanatics are always so certain of themselves, but wiser people so full of doubts.

Event 接口

Jan 14, 2017Programming694 words in 3 min

Event 接口用来描述发生在 DOM 上的任何事件;一些是用户产生的(譬如鼠标、键盘事件等),而另一些是由 API 产生的(譬如动画结束的事件、视频被暂停之类的)。事件类型众多,一些使用其他接口的,都基于主要的 Event 接口,Event 本身包含所有事件共同的属性和方法。

构造函数

1
Event()

创建 Event 对象,并返回之。

属性

Event.bubbles Read only

表示事件是否冒泡。

只有某些事件可冒泡。这些可冒泡的事件的 bubbles 属性值为 true。 该属性可用来检查一个事件是否允许冒泡。

Event.cancelBubble

Event.stopPropagation() 的别名。

Event.cancelable Read only

表示事件是否可撤销。

Event.scoped Read only

表示事件冒泡是否可在 shadow DOM 和 常规 DOM 之间传递。

Event.currentTarget Read only

A reference to the currently registered target for the event. This is the object to which the event is currently slated to be sent; it’s possible this has been changed along the way through retargeting.

Event.defaultPrevented Read only

表示 Event.preventDefault() 是否被调用。

Event.eventPhase Read only

表示事件流正在处理哪个阶段。返回一个整型类型的值,如下:

Constant Value Description
Event.NONE 0 当前没有事件处理(事件尚未被发送)。
Event.CAPTURING_PHASE 1 捕获阶段。事件通过目标的祖先元素进行传播。从 Window 开始,
然后 Document,再然后 HTMLHtmlElement……一直到目标的
父元素。以捕获模式注册的事件监听函数会被触发。
Event.AT_TARGET 2 事件到达目标对象。注册在目标对象上的事件监听函数会被触发。
Event.bubbles 值为 false,此阶段完成后,即完成事件处理。
Event.BUBBLING_PHASE 3 冒泡阶段。事件逆序向目标祖先元素传播,从父元素开始,
最终到达 Window。冒泡只在 Event.bubblestrue 时才会发生。
以冒泡模式注册的事件监听函数会被触发。

Event.srcElement ⚠

非标准的对 Event.target 的引用(IE 浏览器)。

Event.target Read only

指向事件派发者的引用。

Event.timeStamp

从当前文档的生命周期开始到创建事件为止经过的毫秒数。在较新的实现中,该值是 DOMHighResTimeStamp 类型,精确到 5 毫秒,在较老的实现中,该值是 DOMTimeStamp 类型。

Event.type Read only

事件名称(区分大小写)。

Event.isTrusted Read only

表示事件是经由浏览器发起(例如在用户点击之后),还是由脚本发起(例如使用 Event.initEvent)。
当事件由用户操作产生时值为 true,当事件被脚本创建,修改,或经由 dispatchEvent() 方法发送时值为 false

方法

Event.createEvent()

Event.composedPath()

Event.initEvent()

Event.preventDefault()

Event.stopImmediatePropagation()

Event.stopPropagation()

Reference

Buy me a cup of milk 🥛.