jquery绑定事件时解绑定

最近的项目用到了一个JQuery的插件,逻辑代码就用jQuery来写的,遇到了一个情景问题,解决了,记录一下。
点击页面某个元素,弹出一个模态框,弹出的时候动态的append一些元素,再给元素添加点击事件。
显然,$('.class).click(function(){})方法失效,这个方法是给页面上已经存在的元素添加事件。
正确方法是:$(document).on('click,'.class',function(){})
这个方法成功的给元素添加上了事件,但是如果用户点了返回,只是关闭了弹框,并不能对页面进行刷新,那么这个时候,当我们再次点击进行模态框,就会发现,我们再一次的绑定了事件,点击的时候function的内容会累积执行。
一开始并没有分析到这个原因,以为是事件冒泡,结果加上了event.stopPropagation();发现该现象仍存在。
在晚上查看了一些资料后定位到是绑定累积的原因。
解决方法:$(document).off('click','.class').on('click','.class',fucntion(){})
每次绑定事件之前先解除绑定。
二:对页面已经存在的元素进行解绑定可以用:

	$("#searchUsername").unbind();  
    $('#searchUsername').click(function(event){
       	$(".searchChoosedUser .icon-magnifier").click()
	 });

2019年6月25日再次遇到相同问题。点击事件的函数被执行2次,添加了阻止冒泡也未解决,在点击事件前进行解绑解决。

$(document).off('click','.class').on('click','.class',fucntion(){})`

参考:http://www.seozhijia.net/javascript/99.html 感谢作者分享。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值