JS如何防止事件被重复绑定,或者如何判断某个事件是否已经绑定?

JS如何防止事件被重复绑定,或者如何判断某个事件是否已经绑定?

let on = (eventName, callback) => {

window.addEventListener(eventName, callback)

}

on('my:event', () => {

alert('1')

})

on('my:event', () => {

alert('2')

})

on('my:event', () => {

alert('3')

})

window.dispatchEvent(new CustomEvent('my:event'))

为了避免事件被重复监听,我想在第二次调用的时候判断某个是否已经被监听,如果已经注册,则先removeEventListener旧的事件

//我想要的

let on = (eventName, callback) => {

if(/*判断eventName是否已监听*/) { //已添加监听器

//先remove监听器

window.addEventListener(eventName, callback)

} else { //未添加监听器

window.addEventListener(eventName, callback)

}

}


回答:

自己维护一个map吧,key就是target+eventName,value就是函数。on的时候检查一下map是否有记录

以上是 JS如何防止事件被重复绑定,或者如何判断某个事件是否已经绑定? 的全部内容, 来源链接: utcz.com/p/935950.html

回到顶部