2009-09-11 24 views
0
...

$('#target')及其子節點上有聽衆。

當我們調用$('#target')。remove()將其從DOM中刪除時,是否會刪除偵聽器?

如果不是,如何一起刪除它們?

回答

5

取決於您如何添加偵聽器。如果你這樣做

$("#target").click(function() { doSomething(); }); 

然後remove()也將刪除偵聽器。但是,如果您這樣做:

$("#target").live("click", function() { doSomething(); }); 

偵聽器不會被刪除。你在這裏做的是創建一個實時的HTML集合,如果你稍後添加一個id爲「target」的新元素,它會得到這個監聽器添加到它。

+0

在我的應用程序中,一些偵聽器被$ .load()加載的html文件添加,它們會被刪除嗎? – omg 2009-09-11 07:17:48

1

是的,直接綁定的事件處理程序和內部緩存的數據將被刪除。

Manipulation/remove

「請注意,此功能與 1.2.2開始也將刪除所有的事件處理程序和內部緩存的數據。」

+0

那麼通過$ .load()加載的html文件添加的監聽器怎麼樣? – omg 2009-09-11 07:14:59

相關問題