2014-11-25 108 views
0

只是好奇,什麼happends事件偵聽器jQuery:刪除元素和事件監聽器呢?

$('a.someclass', 'div.contextClass').on('click', function someFunction(){ 
    console.log('clicked!'); 
}); 

當我刪除div.contextClass

$('div.contextClass').remove(); 

難道我首先需要做到這一點?

$('a.someclass', 'div.contextClass').off('click'); 

回答

3

contextparent<div>)本身被移除時,一切在其內(<a>)獲取從DOM移除。事件處理程序只在事件發生時執行處理程序。

但是,如果元素本身不存在,則不會收到可以處理的事件,因爲您沒有要執行的操作,如clickfocus或其他。

+0

被毀壞可能不是好詞,但+1因爲它回答了問題。 – 2014-11-25 14:22:26

+0

@ Karl-AndréGagnon「刪除」也許? – 2014-11-25 14:23:28

+0

@ Karl-AndréGagnon你的觀點是什麼? – ProllyGeek 2014-11-25 14:23:48

1

請參考jquery的參考文件here

卸下襬臂()方法採用元件出DOM的。使用.remove()當您想要刪除元素本身以及其中的所有元素時,使用 。 在 除了元素本身之外,與元素相關的所有綁定事件和jQuery數據 都被刪除。要刪除元素 而不刪除數據和事件,請改爲使用.detach()。