jQuery子嵌入事件监听器,父删除

时间:2014-10-01 10:41:22

标签: javascript jquery

我有:

JavaScript的:

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

HTML:

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

然后我这样做:

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

是否会将儿童绑定的事件侦听器从浏览器内存中删除?

1 个答案:

答案 0 :(得分:0)

是的,他们是

.remove()

  

与.empty()类似,.remove()方法将元素取出   DOM。如果要删除元素本身,请使用.remove()   作为里面的一切。所有元素本身除了元素本身   绑定事件和与元素关联的jQuery数据将被删除。   要删除元素而不删除数据和事件,请使用.detach()   代替。

&#13;
&#13;
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
&#13;
<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>
&#13;
&#13;
&#13;