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

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

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,