jQuery事件重复绑定解决

原代码如下:

2016-08-30_17-16-02

“bindBusyEvent”为弹出层打开后绑定事件,会重复调用,主观认为只会绑定一次,实际是累加,无图无真相,上图:

2016-08-30_17-16-57

如图所示,事件绑定累加,会导致重复执行。解决方法如下:

2016-08-30_17-23-38

事件换成通过“on”绑定,执行完毕通过“off”移除掉绑定,“off”为jQuery1.7.2新增的方法

补充

有童鞋说可以通过“unbind”解决这个问题,网上也有很多资料都是通过“unbind”解决的,确实可以,只是“unbind”在jQuery3.0中就被遗弃了,为了向后看,所以还是通过off搞定。

用“off”的另外的一种写法:.off(‘click’).on(‘click’…

jQuery还支持“one”绑定事件,只执行一次

总结

本文其实是在讲通过“on”绑定的事件可以通过“off”移除

本文场景中的例子,终极解决办法应该是把绑定写到外面,不重复执行绑定。。。

 

《jQuery事件重复绑定解决》有一个想法

发表评论

电子邮件地址不会被公开。 必填项已用*标注