jQuery:删除元素以及事件监听器的内容?

时间:2014-11-25 14:17:44

标签: jquery event-listener

好奇,事件监听器会发生什么?

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

当我删除div.contextClass

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

我首先需要这样做吗?

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

2 个答案:

答案 0 :(得分:3)

没有

当移除contextparent<div>)本身时,其中的所有内容(<a>)都会从DOM中删除。事件处理程序仅在事件发生时执行处理程序。

但是当元素本身不存在时,它没有任何可以处理的事件,因为你没有让元素做clickfocus之类的东西。< / p>

答案 1 :(得分:1)

请参阅jquery参考文档here

  

.remove()方法从DOM中获取元素。当你使用.remove()时   想要删除元素本身以及其中的所有内容。的在   除了元素本身,所有绑定事件和jQuery数据   与元素相关联的内容已删除。删除元素   如果不删除数据和事件,请改用.detach()。