新建
js新建自定义事件方式有两种:
1. new Event('myEvent',initEvent)
2. new CustomEvent('myEvent',initEvent)
// new CustomEvent('myEvent', {detail:{name: 'yejingxiao'}})
相同点
简单的自定义事件 Event, CustomEvent都可以用,且第二个参数都是可选非必填参数,用以配置常见的事件设置:是否冒泡("bubbles": true/false)、是否能被取消("cancelable": true/false)等等
不同点
从书写方式上可以看出两者区别,CustomEvent除了定义简单自定义事件,还支持detail参数传递;
触发
触发是通过 dispatchEvent 方式去触发
window.dispatchEvent(myEvent)
当然 ie8及以下存在兼容问题需要用fireEvent
if (window.dispatchEvent) {
window.dispatchEvent(myEvent)
} else {
window.fireEvent(myEvent)
}
监听
通过addEventListener方式来监听
window.addEventListener("myEvent", e => {
alert(`myEvent事件触发,name === ${e.detail.name} `);
})
标签:自定义,js,window,myEvent,dispatchEvent,CustomEvent,事件
From: https://www.cnblogs.com/yejingxiao/p/17657615.html