jquery防止事件重复绑定以及解绑技巧

有时候,如果一个事件绑定重复执行,则会绑定多个事件到dom上。

防止的办法是。在绑定前先解绑。建议使用bind来做。

如:$(selector).unbind(‘click’).bind(“click”,function(){ …. });

但这样有个问题是,unbind会把之前的所有click事件都unbind掉。可能会影响其它的绑定。有两种办法:

1.使用事件命名空间。

$(selector).unbind(‘click.by.bob’).bind(“click.by.bob”,function(){ …. });这个“click.by.bob”唯一标识了这个click的绑定。解绑时就不会连dom上的其它绑定的click事件也解除掉了。

2.解绑时使用handler参数

handler时不使用匿名方法。var handler=function(){ … }; $(selector).unbind(‘click’,handler).bind(“click”handler);

第二种方式的时候,使用on/off也是完全等效的。