2015-01-12 28 views
1

附加事件處理程序:刪除特定的事件處理程序

$(document).on('keypress', function(event){ 
    #1 
}); 

這將刪除所有的 「按鍵」 事件處理程序:

$(document).off('keypress'); 

我只希望我的代碼刪除#1以上

燦這可以在不使用名稱空間的情況下完成?我不想創建隨機字符串被用作命名空間:(

+0

什麼是與使用的命名空間的問題?你並不需要使用隨機字符串。如果使用有意義的字符串這將是可取的Ť他的。然後,您不必爲了在事後刪除事件而拖延原有功能。 – JLRishe

回答

3

傳遞原始處理程序off。確保你傳遞原,而不是一個新的匿名功能,只是看起來是一樣的。

這意味着你將需要儲存。

var handler = function(event){ 
    #1 
}; 

$(document).on('keypress', handler); 

$(document).off('keypress', handler); 
+0

但文檔說第二個參數是一個選擇器字符串。第三個是一個函數,但是eventObject類型。我是匿名的?! – Elfy

+0

@Elfy:方括號內的參數表示可選參數。這意味着可以排除任何或全部。所以在這種情況下,我們排除了字符串,但包含了函數。 –

+0

@Elfy文檔中的Event eventObject指示傳遞給函數的參數是什麼類型。沒有多種類型的功能。 – JLRishe