用法:
target.addEventListener(type, listener, options);
target.addEventListener(type, listener, useCapture);
参数:
type: 表示事件监听类型的字符串。(click、mouseenter...)
listener: 当所监听的事件类型触发时,会接收到一个事件通知(实现了 Event接口的对象)对象。
listener
必须是一个实现了EventListener
接口的对象,或者是一个函数。-
options(可选):
一个指定有关listener
属性的可选参数对象。可用的选项如下:-
capture
:Boolean
,表示listener
会在该类型的事件捕获阶段传播到该EventTarget
时触发。 -
once
:Boolean
,表示listener
在添加之后最多只调用一次。如果是true,listener
会在其被调用之后自动移除。 -
passive
:Boolean
,设置为true时,表示listener
永远不会调用preventDefault()
。如果 listener 仍然调用了这个函数,客户端将会忽略它并抛出一个控制台警告。 -
mozSystemGroup
: 只能在 XBL 或者是 Firefox' chrome 使用,这是个Boolean
,表示listener
被添加到 system group。
-
useCapture(可选):
Boolean
,默认是false。在DOM树中,注册了listener的元素, 是否要先于它下面的EventTarget,调用该listener。 当useCapture(设为true) 时,沿着DOM树向上冒泡的事件,不会触发listener。当一个元素嵌套了另一个元素,并且两个元素都对同一事件注册了一个处理函数时,所发生的事件冒泡和事件捕获是两种不同的事件传播方式。事件传播模式决定了元素以哪个顺序接收事件。
useCapture设置为true时,会以事件捕获的顺序执行,为false时,会按照事件冒泡的顺序执行。