为了账号安全,请及时绑定邮箱和手机立即绑定

DOM2级删除事件不能直接使用匿名函数。

btn3.addEventListener('click',function(){alert("this.value");},false); //添加事件有效

btn3.removeEventListener('click',function(){alert("this.value");},false);  //删除事件无效

正在回答

2 回答

很好的解释,刚刚也是迷惑这件事。

0 回复 有任何疑惑可以回复我~

搞了半天自己百度弄懂了。因为匿名函数看起来是一样的,其实是两个不同的对象。

btn3.addEventListener('click',function(){alert("this.value");},false); 

btn3.removeEventListener('click',function(){alert("this.value");},false);

这两行代码中的function(){alert(alert("this.value"));}看上去是同一个东西,实际上是不同的对象,而removeEventListener要求函数必须一样。

所以addEventListener最好还是用将匿名函数赋值给某个变量

addEventListener('click',showValue,false);

removeEventListener('click',showValue,false);

这样就不会出bug了。

4 回复 有任何疑惑可以回复我~
#1

harry2013

漂亮,盗取你的劳动成果。
2016-07-27 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

DOM2级删除事件不能直接使用匿名函数。

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信