2010-07-08 32 views
0

我正在瀏覽其他人寫過的插件,並且由於某種原因我的所有單擊事件處理程序都被銷燬了。我正在瀏覽代碼,並且我已經註釋了幾種解除綁定的用法,以確定它是否導致問題。不幸的是,這還不夠,所以我想知道是否有其他方法來刪除/銷燬事件處理程序?有多少種方式來刪除/銷燬jquery中的事件處理程序?

謝謝!

+1

您可能想閱讀http://stackoverflow.com/questions/209029/best-way-to-remove-an-event-handler-in-jquery – 2010-07-08 15:04:20

+0

感謝您的鏈接...也許我是缺少一些東西,但不是上面提到的用來解除綁定?我已經評論了所有解綁的實例,但仍然沒有運氣。 – 2010-07-08 15:11:23

+0

是否有一個stopPropagation(); (或返回false;),這是防止它得到你的處理程序? – 2010-07-08 15:27:12

回答

0

.unbind()將取消綁定一次收集的事件,或.die()這是.live()相反,這意味着它將取消綁定當前設置收集的事件,而且附着在未來的任何事件。

+0

我檢出die(),並且沒有在代碼中使用die ... – 2010-07-08 15:12:35

+0

您是否在使用.click()事件處理元素的任何DOM操作?如果使用.remove(),則不保存事件處理程序。如果你使用.detach(),那麼你需要確保你正在緩存已刪除的元素。 – Michal 2010-07-08 16:03:26

+0

我沒有在我自己的代碼中做任何直接的DOM操作,但是當我執行$($。plugin).remove()時,這是我的點擊事件被刪除。 – 2010-07-08 16:14:33