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

关于js原生事件的绑定与解除绑定

关于js原生事件的绑定与解除绑定

拉风的咖菲猫 2019-05-25 17:53:26
直接上代码ele.addEventListener('click',function(e){console.log(e)})这里我需要在一定的情况下对ele的click事件进行解除绑定的操作,但是在绑定的时候我需要使用额外的参数比如event,我该怎么解除绑定呢?我知道removeEventListener可以解绑,但是他们要传入的那个函数必须是一个相同的具名外部函数,在我需要参数的情况下行不通了我也知道在只需要绑定一个click事件的时候用ele.click=function(){}然后再用ele.click=null来解绑,或者使用其他工具库提供的方法.但是现在我只想要知道就用removeEventListener来解除有没有可能谢谢
查看完整描述

2 回答

?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

这样就行,绑定和解绑的函数只要是指向同一个就ok
functionhandler(e){
//操作
console.log(e)
}
ele.addEventListener('click',handler);//绑定
ele.removeEventListener('click',handler);//解绑
                            
查看完整回答
反对 回复 2019-05-25
?
GCT1015

TA贡献1827条经验 获得超4个赞

functionbindFunc(e){
console.log(e);
//用参数e来进行一些操作,干啥都行
}
this.cusBindFunc=bindFunc.bind(this,e);//bind一下,因为remove的时候用的func必须和绑定的时候一样
ele.addEventListener('click',this.cusBindFunc);//绑定事件
ele.removeEventListener('click',this.cusBindFunc);//解绑
另外为了兼容性,可以兼容一下attachEvent,detachEvent
不知道我是否理解了你的问题@AugustEchoStone
                            
查看完整回答
反对 回复 2019-05-25
  • 2 回答
  • 0 关注
  • 340 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信