2014-10-01 47 views
0

我:jQuery的孩子內嵌事件偵聽器,父去除

的JavaScript:

$('button#test').click(function(){ 
    //test 
}); 

HTML:

<div id="parent"> 
    <button id="test">click me</button> 
</div> 

那麼我這樣做:

$('div#parent').remove(); 

將孩子綁定事件監聽器從瀏覽器內存中刪除?

回答

0

是它們是

.remove()

類似於.empty()時,卸下襬臂()方法取出 DOM的元素。使用.remove()當你想刪除元素本身,以及 作爲裏面的一切。除了元素本身之外,綁定事件和與元素相關的jQuery數據的所有 都將被刪除。 要刪除元素而不刪除數據和事件,請改爲使用.detach() 。

var $child = $('#test').click(function() {}); 
 

 
var _data = $._data($child[0], 'events'); 
 
console.log(_data); //this will log the data object 
 

 
var $parent = $('#parent').remove(); 
 

 
var _data = $._data($child[0], 'events'); 
 
console.log(_data); //this will log undefined
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<div id="parent"> 
 
    <button id="test">click me</button> 
 
</div>