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