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)
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
自己维护一个map吧,key就是target+eventName,value就是函数。on的时候检查一下map是否有记录