2012-02-28 131 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()信息)。