2012-10-08 32 views
0

我正在捕捉燈箱效果的正文上的點擊事件。如果我將兩個事件綁定到兩個不同對象的主體,我可以分別解除綁定它們嗎?

許多燈箱可以一次打開。

當我關閉其中一個,我希望他們各自的處理程序死亡。

但是因爲它們都綁定在「身體」上,所以一個解除綁定的呼叫將它們全部解除綁定。

$('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; 
    };   
}, 

謝謝!

+2

只是一個提示,如果你正在使用Jquery 1.7+而不是綁定和解除綁定 –

回答

1

您有兩種選擇:命名空間事件類型和通過引用處理程序解除綁定。

命名空間的事件類型:

參照
$(selector).on('click.mynamespace', somehandler); 
... 
$(selector).off('click.mynamespace'); 

涅槃:

$(selector).on('click', somehandler); 
... 
$(selector).off('click', somehandler); 

顯然,你需要堅持您所附加的實際處理程序的引用,因此它與匿名有點不太方便功能。

更新:更改答案使用建議的on/off jQuery方法。

+0

啊謝謝Ianzz。出於某種原因,我忘記了這個天才信息。謝謝! – Trip

相關問題