2013-08-22 135 views
0

我有下面這行到一個click事件添加到使用同一類項目:解除綁定click事件向類

jQuery('.multi_image').click(function(){onMultiImageClicked(jQuery(this));}); 

我使用下面的代碼,試圖解除綁定click事件:

jQuery('.multi_image').unbind('click'); 

但是,解除綁定似乎沒有任何效果。

是否有可能從類的對象類中刪除點擊事件?

回答

2

.unbind('click')必須努力......但我建議使用onoff功能:

使用onoff功能來代替:

jQuery('.multi_image').on("click", function(){ 
    onMultiImageClicked(jQuery(this)); 
}); 

jQuery('.multi_image').off("click"); 

documentation

off()方法刪除附加.on()的事件處理程序。有關更多信息,請參閱該頁面上關於委派和直接綁定事件的討論。通過提供事件名稱,名稱空間,選擇器或處理函數名稱的組合,可以在元素上刪除特定事件處理程序。 當給出多個過濾參數時,所提供的所有參數必須匹配才能移除該事件處理程序。

+0

謝謝。原來是一個邏輯錯誤。我最初發布的代碼的作品。不過,我很欣賞被打開到「開」和「關」選項。 –

+0

@LeeLoftiss是的,它應該。更新了我的答案。 –

0

從jQuery的文檔

Event handlers attached with .bind() can be removed with .unbind(). 

由於您沒有使用綁定(),這可能是對這種行爲的原因。嘗試使用on(),off()或使用bind()在使用unbind()之前綁定click處理程序。