我有:
JavaScript的:
$('button#test').click(function(){
//test
});
HTML:
<div id="parent">
<button id="test">click me</button>
</div>
然后我这样做:
$('div#parent').remove();
是否会将儿童绑定的事件侦听器从浏览器内存中删除?
答案 0 :(得分:0)
是的,他们是
与.empty()类似,.remove()方法将元素取出 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
&#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;