自定义事件 Event 与 CustomEvent
window.addEventListener() 添加事件监听
window.dispatchEvent() 抛出事件
Event算是一个顶级接口,CustomEvent基于Event,增加了部分参数
Event
-
event = new Event(typeArg, eventInit);
- typeArg
是
DOMString
类型,表示所创建事件的名称。- eventInit可选
是
EventInit
类型的字典,接受以下字段:window.addEventListener('custom', customHandler) function customHandler(params) { // 打印事件对象 在5秒后 出现打印,可以看到我们自定义的参数 console.log(params) } setTimeout(() => { // 创建自定义事件 let event = new Event('custom'); // 如果希望事件带参数,可以把参数放在事件对象上 event.name = 'custom-name'; event.detail = { age: 20 } event.ppp = '这是一个锅' // dispatchEvent 返回一个 boolean 值 let result = window.dispatchEvent(event) console.log(result); }, 5000)
-
CustomEvent
event = new CustomEvent(typeArg, customEventInit);
- typeArg
一个表示 event 名字的字符串
- customEventInit可选
一个字典类型参数,有如下字段
window.addEventListener('custom', customHandler) function customHandler(params) { // 打印事件对象 在5秒后 出现打印,可以看到我们自定义的参数 console.log(params) } setTimeout(() => { // 创建事件对象 let event = new CustomEvent('Eric', { // 这里可直接传入 自定义的事件参数 detail: { height: 100, widht: 100, rect: 10000 } }) // 同样 我们也可以直接在事件对象上绑定 参数 event.name = 'custom-event' window.dispatchEvent(event) }, 5000)