2013-04-14 34 views
6

當元素被銷燬時事件會發生什麼?據我所知,jQuery仍然在其全局「存儲庫」中有事件。在我的情況下,很多元素的創建,與事件約束,並再次被破壞......元素被銷燬後會自動解除綁定嗎?

我需要害怕的過度使用之後,一些內存的問題?

+2

如果刪除經由jQuery方法元件(例如,['卸下襬臂()'](http://api.jquery.com/remove/))它消除了相關聯的事件處理程序和(jQuery的)數據太。 – nnnnnn

+0

非常有幫助,謝謝... – kraftwer1

+0

順便說一下,它是否也爲子元素做? – kraftwer1

回答

0

是。如果你有很多附加到HTML元素,那麼你應該明確地將其刪除的事件處理程序(通過使用像removeempty,而不是如detach或「常規」 JS jQuery的方法),要麼改變你的活動「結合」的策略。我的意思是利用jQuery事件的委派。通過這種方式,你可以找出一些共同的祖先到你的事件綁定元素集合,並將其綁定到事件上。經驗法則總是最小化事件處理程序的數量。

+0

我很確定(但不確定)這是錯誤的。 – Dave

+0

@Dave但是什麼?爲什麼?我當然不是絕對可靠的,但這就是我所知道的。如果你有反對意見的話,讓我聽聽 - 這是學習的唯一方法,對吧? – guessimtoolate

+0

好吧,我指的是主要觀點:「你應該明確地刪除它們......」。我不認爲這是必要的。 https://github.com/jquery/jquery/blob/master/src/manipulation.js#L96這裏https://github.com/jquery/jquery/blob/master/src/manipulation:看到這裏的來源。 js#L465(由所有內容更改功能調用空) – Dave

相關問題