如果HTML元素具有侦听器,那么从DOM中删除该元素后,侦听器会发生什么?

ste*_*bot 5 html javascript jquery

正如标题所述,如果我有一个绑定到HTML元素的jQuery监听器,然后使用jQuery从DOM中删除HTML元素会发生什么?

<div id="eventDiv> ... </div>


$('#eventDiv').click(function() {
    // event handling code here
 });
Run Code Online (Sandbox Code Playgroud)

那么当我这样做时,听众会发生什么

 $('#eventDiv').remove();
Run Code Online (Sandbox Code Playgroud)

另外,如果你不使用jQuery并使用document.removeChild()会发生什么?

Viv*_*ath 3

如果你查看jQuery 源代码remove()会调用一个名为 的函数,cleanData该函数调用jQuery.event.removeor jQuery.removeEvent(这似乎是一个内部函数)。这些方法最终会调用unbind(),从而删除您要删除的 DOM 元素的所有事件侦听器。