EventTarget.dispatchEvent - Web API 接口参考 编辑
向一个指定的事件目标派发一个事件, 并以合适的顺序同步调用目标元素相关的事件处理函数。标准事件处理规则(包括事件捕获和可选的冒泡过程)同样适用于通过手动的使用dispatchEvent()
方法派发的事件。
语法
cancelled = !target.dispatchEvent(event)
参数
event
是要被派发的事件对象。target
被用来初始化 事件 和 决定将会触发 目标.
返回值
- 当该事件是可取消的(cancelable为true)并且至少一个该事件的 事件处理方法 调用了
Event.preventDefault()
,则返回值为false
;否则返回true
。
如果该被派发的事件的事件类型(event's type)在方法调用之前没有被经过初始化被指定,就会抛出一个 UNSPECIFIED_EVENT_TYPE_ERR
异常,或者如果事件类型是null
或一个空字符串. event handler 就会抛出未捕获的异常; 这些 event handlers 运行在一个嵌套的调用栈中: 他们会阻塞调用直到他们处理完毕,但是异常不会冒泡。
注意
与浏览器原生事件不同,原生事件是由DOM派发的,并通过event loop异步调用事件处理程序,而dispatchEvent()
则是同步调用事件处理程序。在调用dispatchEvent()
后,所有监听该事件的事件处理程序将在代码继续前执行并返回。
dispatchEvent()
是create-init-dispatch过程的最后一步,用于将事件调度到实现的事件模型中。可以使用Event构造函数来创建事件。
另请参阅 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
BCD tables only load in the browser
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论