org.w3c.dom.events

接口
异常
public interface EventTarget

EventTarget 接口由支持 DOM Event Model 的实现中的所有 Nodes 实现。因此,此接口可以通过在 Node 接口的实例上使用特定于绑定的强制转换方法获得。该接口允许在 EventTarget 上注册和移除 EventListeners,并将事件指派给 EventTarget

另请参见《Document Object Model (DOM) Level 2 Events Specification》。

从以下版本开始:
DOM Level 2

方法摘要
 void addEventListener(String type, EventListener listener, boolean useCapture)
          此方法允许在事件目标上注册事件侦听器。
 boolean dispatchEvent(Event evt)
          此方法允许将事件指派到实现事件模型。
 void removeEventListener(String type, EventListener listener, boolean useCapture)
          此方法允许从事件目标移除事件侦听器。
 

方法详细信息

addEventListener

void addEventListener(String type,
                      EventListener listener,
                      boolean useCapture)
此方法允许在事件目标上注册事件侦听器。如果在处理事件时将 EventListener 添加到 EventTarget,则该事件将不会通过当前操作触发,但可以在事件流后面的阶段(如 bubbling 阶段)触发。
如果使用同样的参数在同一个 EventTarget 上注册多个相同的 EventListener,则丢弃重复的实例。它们不会引起两次调用 EventListener,并且由于被丢弃,它们不需要使用 removeEventListener 方法移除。

参数:
type - 用户正在注册的事件类型
listener - listener 参数采用由用户实现的接口,该接口包含事件发生时要调用的方法。
useCapture - 如果为 true,则 useCapture 指示用户希望启动捕获。启动捕获后,所有指定类型的事件将在被指派到树中其下面的任何 EventTargets 之前指派给已注册的 EventListener。正在通过树向上 bubbling 的事件将不触发指定的使用捕获的 EventListener

removeEventListener

void removeEventListener(String type,
                         EventListener listener,
                         boolean useCapture)
此方法允许从事件目标移除事件侦听器。如果 EventListener 在处理事件时从 EventTarget 移除,则它不会由当前操作触发。 EventListener 永远不能在移除后被调用。
用不标识在 EventTarget 上的任何当前已注册的 EventListener 的参数调用 removeEventListener 时无效。

参数:
type - 指定正在被移除的 EventListener 的事件类型。
listener - 该 EventListener 参数指示要被移除的 EventListener
useCapture - 指定正被移除的 EventListener 是否是作为捕获侦听器注册的。如果一个侦听器注册了两次,一次带有捕获,一次不带捕获,每次都必须单独移除。移除捕获侦听器不影响同一侦听器的非捕获版本,反之亦然。

dispatchEvent

boolean dispatchEvent(Event evt)
                      throws EventException
此方法允许将事件指派到实现事件模型。以此方式指派的事件将与直接由实现指派的事件有相同的捕获和 bubbling 行为。事件的目标是在其上调用 dispatchEvent EventTarget

参数:
evt - 指定用于处理事件的事件类型、行为或上下文信息。
返回:
dispatchEvent 的返回值指示处理事件的任何一个侦听器是否调用了 preventDefault。如果调用了 preventDefault,则值为 false;否则该值为 true。
抛出:
EventException - UNSPECIFIED_EVENT_TYPE_ERR: 如果 Event 的类型不是在调用 dispatchEvent 之前通过初始化该事件指定的,则引发该异常。把 Event 的类型指定为 null 或空字符串也会触发此异常。