也許我完全錯過了在jQuery中處理的東西,但這裏是我的問題。jquery臨時解綁事件
假設有一些事件綁定,就像
$(element).bind("mousemove", somefunc);
現在,我想介紹一個新的鼠標移動綁定不覆蓋舊的,但暫時排除(取消)它。換句話說,當我綁定我的函數時,我必須確定沒有其他函數會執行該事件,直到我恢復它爲止。
我在尋找類似:
$(element).bind("mousemove", somefunc);
// Somefunc is used regularly
var savedBinding = $(element).getCurrentBinding("mousemove");
$(element).unbind("mousemove").bind("mousemove", myfunc);
// Use myfunc instead
$(element).unbind("mousemove", myfunc).bind("mousemove", savedBindings);
當然,somefunc是不是我的控制之下,或者這將是無用的:)
我的理解是可以綁定多個對同一事件起作用,並且這些功能的執行不能預先確定。 我知道停止事件傳播和即時事件傳播,但我認爲他們在我的情況下是無用的,因爲執行順序無法確定(但也許我得到這些錯誤)。
我該怎麼做? 在此先感謝 〜亞基
編輯:我需要突出顯示:我需要以前安裝的處理程序(somefunc)不執行。我沒有定義該處理程序,它可能會或可能不存在,但它由第三方用戶安裝。
編輯2:好吧,這是不可行的現在,我想我需要eventListenerList,這在大多數瀏覽器尚未實現。 http://www.w3.org/TR/2002/WD-DOM-Level-3-Events-20020208/changes.html
哇!我沒有那個:)這可以完全工作!謝謝! – AkiRoss 2010-08-04 23:29:14
哎呀,對不起,我錯了:該解決方案不起作用,因爲我需要禁用之前綁定的mousemove處理程序。 – AkiRoss 2010-08-05 00:31:44
@AkiRoss - 爲什麼你需要禁用以前的處理程序?通過翻轉開關,您可以獲得相同的效果。 – JasCav 2010-08-05 00:38:11