2010-07-08 35 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