2012-02-28 90 views
3

我目前正在使用jQuery移动,并且有一个关于DOM如何工作的快速问题。目前,我将事件绑定到通过AJAX加载的页面上的元素(页面被注入到DOM中)。jQuery Mobile,DOM和事件解除绑定

当页面转换时,根据jQuery Mobile docs,jQuery手机将页面从DOM中移除。

我是否需要担心将jQuery事件解除绑定到不再存在于DOM中的元素?当我通过ajax更改页面时,我确信GC会清理绑定吗?

TLDR:当从DOM中删除绑定了jQuery [$(...).on("click" ...);]的元素时,我们是否必须担心解除绑定事件?或者,JavaScript自动地知道删除这些事件?

回答

2

当您更改页面时,浏览器将清除前一页中的所有内容 - 您不必担心这一点。

在jQuery中,如果您使用jQuery的.remove()方法从DOM中取出某些东西,那么jQuery将为您清理干净。如果您不使用.remove()并手动删除DOM元素,那么有可能某些jQuery状态无法正确清理(例如,.data()信息)。