向一个指定的事件目标派发一个事件,  以合适的顺序触发受影响的 事件目标。标准事件处理规则(包括事件捕获和可选的冒泡过程)同样适用于通过手动的使用dispatchEvent()方法派发的事件。

语法

cancelled = !target.dispatchEvent(event)
  • event 是要被派发的事件对象。
  • target 被用来初始化 事件 和 决定将会触发 目标.
  • 当该事件是可取消的(cancleable为true)并且至少一个该事件的 事件处理方法 调用了Event.preventDefault(),则返回值为false;否则返回true

如果该被派发的事件的事件类型(event's type)在方法调用之前没有被经过初始化被指定,就会抛出一个 UNSPECIFIED_EVENT_TYPE_ERR 异常,或者如果事件类型是null或一个空字符串. event handler 就会抛出未捕获的异常; 这些 event handlers 运行在一个嵌套的调用栈中: 他们会阻塞调用直到他们处理完毕,但是异常不会冒泡。

注意

dispatchEvent 是分发模型流程实现的最后一步。 其中的事件可以通过document.createEvent 方法创建, 并通过 initEvent 或其他的初始化方法,更具体的说,比如 initMouseEvent 或 initUIEvent

另请参阅 Event object reference.

例子

参考 Creating and triggering events.

规范

Specification Status Comment
DOM
EventTarget.dispatchEvent()
Living Standard Initial definition in the DOM 2 Events specification.

Browser compatibility

Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support 4 (Yes) 2 9 [1] 9.64 (probably earlier) 3.2 (probably earlier)
Feature Android Edge Firefox Mobile (Gecko) IE Phone Opera Mobile Safari Mobile
Basic support ? (Yes) ? ? ? ?

[1]: 早版本的 IE 仅支持其特有的 EventTarget.fireEvent() 方法作为替代。

 

文档标签和贡献者

标签: 
 最后编辑者: xiaojunjor,