HTML 匿名事件清除方法
网上很多说匿名事件是不可以清除的,或者说必须要在绑定的函数里面清除,经过我的测试发现不是这样
这里我们先学习一个新的方法 getEventListeners(node节点)
这个api会返回node节点上绑定的所有事件
// 使用方法
getEventListeners(document)
//
返回值类型,直接在本页面F12控制台 输入上面代码查看即可
开始我们的测试!!!
先跟我绑定一个事件
使用浏览器打开一个干净的 html 页面,之后F12打开控制台
注意:一定要是干净的没有绑定任何事件的页面
我们在document
对象上绑定一个click
事件
document.addEventListener("click", e=>{alert(123)})
此时你点击页面就会弹出我们的消息了
并且使用的是匿名函数绑定的
跟着我来清除这个事件
使用以下代码
document.removeEventListener("click", getEventListeners(document).click[0].listener)
此时页面点击就消除了click事件了
原理解析
getEventListeners(document)
api 获取的对象下面的数组中保存着listener
也就是添加事件事绑定的函数,我们通过getEventListeners(document).click[0].listener
调用的方式再次调出了这个函数,虽然他未命名,但他们一定是同一个函数,甚至指针相同