addEventListener 语法
addEventListener(type, listener);
addEventListener(type, listener, options);
addEventListener(type, listener, useCapture);
参数
type
表示监听事件类型的大小写敏感的字符串。
listener
当所监听的事件类型触发时,会接收到一个事件通知(实现了 Event
接口的对象)对象。listener
必须是一个实现了 EventListener
接口的对象,或者是一个函数。有关回调本身的详细信息,请参阅事件监听回调
options
可选一个指定有关 listener
属性的可选参数对象。可用的选项如下:
capture
可选一个布尔值,表示listener
会在该类型的事件捕获阶段传播到该EventTarget
时触发。once
可选一个布尔值,表示listener
在添加之后最多只调用一次。如果为true
,listener
会在其被调用之后自动移除。passive
可选一个布尔值,设置为true
时,表示listener
永远不会调用preventDefault()
。如果 listener 仍然调用了这个函数,客户端将会忽略它并抛出一个控制台警告。查看使用 passive 改善滚屏性能以了解更多。signal
可选AbortSignal
,该AbortSignal
的abort()
方法被调用时,监听器会被移除。
useCapture
可选一个布尔值,表示在 DOM 树中注册了 listener
的元素,是否要先于它下面的 EventTarget
调用该 listener
。当 useCapture(设为 true)时,沿着 DOM 树向上冒泡的事件不会触发 listener。当一个元素嵌套了另一个元素,并且两个元素都对同一事件注册了一个处理函数时,所发生的事件冒泡和事件捕获是两种不同的事件传播方式。事件传播模式决定了元素以哪个顺序接收事件。进一步的解释可以查看 DOM Level 3 事件及 JavaScript 事件顺序文档。如果没有指定,useCapture
默认为 false
。
备注: 对于事件目标上的事件监听器来说,事件会处于“目标阶段”,而不是冒泡阶段或者捕获阶段。捕获阶段的事件监听器会在任何非捕获阶段的事件监听器之前被调用。