我正在捕捉身体上的点击事件,以获得灯箱效果。
许多灯箱可以一次打开。
当我关闭它们中的一个时,我希望它们各自的处理程序都死掉。
但是因为它们都绑定到"body",所以一次unbind调用就可以将它们全部解除绑定。
$('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;
};
},谢谢!
发布于 2012-10-08 22:08:25
您有两个选项:命名空间事件类型和通过引用处理程序取消绑定。
命名空间事件类型:
$(selector).on('click.mynamespace', somehandler);
...
$(selector).off('click.mynamespace');引用解绑:
$(selector).on('click', somehandler);
...
$(selector).off('click', somehandler);显然,您需要持有对已附加的实际处理程序的引用,因此使用匿名函数就不太方便了。
更新:更改了答案,以使用推荐的on/off jQuery方法。
https://stackoverflow.com/questions/12783279
复制相似问题