我正在捕捉身体上的点击事件以获得灯箱效果。
许多灯箱可以一次打开。
当我关闭其中一个时,我希望他们各自的处理程序死掉。
但是因为他们都被“身体”所束缚,所以一个无约束的召唤,将他们全部解开。
$('body').bind('click', function(){ HelperPopup.mouseup_handler($el, mouse_is_inside); });
// .. then later ..
mouseup_handler: function($el, mouse_is_inside) {
$el.fadeOut(100);
$('body').unbind('click', HelperPopup.mouseup_handler($el) );
return false;
};
},
谢谢!
答案 0 :(得分:1)
您有两种选择:命名空间事件类型,以及通过引用处理程序取消绑定。
命名空间事件类型:
$(selector).on('click.mynamespace', somehandler);
...
$(selector).off('click.mynamespace');
通过引用解除绑定:
$(selector).on('click', somehandler);
...
$(selector).off('click', somehandler);
显然你需要保存对你附加的实际处理程序的引用,所以使用匿名函数时不太方便。
更新:更改了答案,以使用推荐的on
/ off
jQuery方法。