0
我只用jQuery工作了幾天,所以問題可能不是很有趣。 我有DIV重新加載按鈕上方超過阿賈克斯。 DIV內容本身註冊點擊處理程序的按鈕。所以問題是:我應該刪除加載內容已註冊的處理程序嗎?刪除元素時應該刪除處理程序嗎?
我做了一些小實驗,看起來不應該。但這是真的嗎?
我只用jQuery工作了幾天,所以問題可能不是很有趣。 我有DIV重新加載按鈕上方超過阿賈克斯。 DIV內容本身註冊點擊處理程序的按鈕。所以問題是:我應該刪除加載內容已註冊的處理程序嗎?刪除元素時應該刪除處理程序嗎?
我做了一些小實驗,看起來不應該。但這是真的嗎?
如果從DOM中刪除元素,並且沒有對它們的進一步引用,事件處理程序最終也將被垃圾回收。
但是,如果你有一個參考,比如
var someElement = document.getElementById('someId')
那麼即使元素是由您的更新過程中去除,someElement
仍將保持對這個元素的引用。這也意味着事件處理程序仍然存在於內存中。
如果從DOM中刪除元素並且沒有對它們的進一步引用,則事件處理程序最終也將被垃圾收集。 –
@FelixKling,我不擅長js。 js中的引用如何? –
例如'var someElement = document.getElementById('someId')'。即使元素在更新過程中被移除,「someElement」仍然會保存對該元素的引用並訪問其相關數據。 –