1. DOM 的事件操作(监听和触发),都定义在EventTarget
接口。所有节点对象都部署了这个接口,其他一些需要事件通信的浏览器内置对象(比如,XMLHttpRequest
、AudioNode
、AudioContext
)也部署了这个接口。
该接口主要提供三个实例方法。
-
addEventListener
:绑定事件的监听函数 -
removeEventListener
:移除事件的监听函数 -
dispatchEvent
:触发事件
2. EventTarget.addEventListener():用于在当前节点或对象上,定义一个特定事件的监听函数。一旦这个事件发生,就会执行监听函数。该方法没有返回值
target.addEventListener(type, listener[, useCapture]);
该方法接受三个参数。
-
type
:事件名称,大小写敏感。 -
listener
:监听函数。事件发生时,会调用该监听函数。 -
useCapture
:布尔值,表示监听函数是否在捕获阶段(capture)触发,默认为false
(监听函数只在冒泡阶段被触发)。该参数可选
3. EventTarget.removeEventListener():用来移除addEventListener
方法添加的事件监听函数。该方法没有返回值。removeEventListener
方法的参数,与addEventListener
方法完全一致。它的第一个参数“事件类型”,大小写敏感
4. EventTarget.dispatchEvent():在当前节点上触发指定事件,从而触发监听函数的执行。该方法返回一个布尔值,只要有一个监听函数调用Event.preventDefault()
,则返回值为false
,否则为true
target.dispatchEvent(event)