Javascript 如何使用事件处理程序从dom树中删除元素

Javascript 如何使用事件处理程序从dom树中删除元素,javascript,javascript-events,Javascript,Javascript Events,这是我要删除的元素: <div id="tobeRemoved"> <div class="eventAttached"></div> <div> <div class="eventAttached"></div> </div> </div> 但是这些活动呢?它们是否同时被清除 顺便说一句,我更喜欢跨浏览器解决方案。如果使用jQuery添加事件,那么在删除元素

这是我要删除的元素:

<div id="tobeRemoved">
    <div class="eventAttached"></div>
    <div>
        <div class="eventAttached"></div>
    </div>
</div>
但是这些活动呢?它们是否同时被清除


顺便说一句,我更喜欢跨浏览器解决方案。

如果使用jQuery添加事件,那么在删除元素时,它将删除事件

如果您知道事件类型,可以尝试以下方法:

function removeEventHandler(elem,eventType,handler) {
 if (elem.removeEventListener) 
    elem.removeEventListener (eventType,handler,false);
 if (elem.detachEvent)
    elem.detachEvent ('on'+eventType,handler); 
}

或者jQuery的函数。

Yes div class eventAttached也将被删除,因为元素是tobeRemoved的子元素class@JeffRobertDagala是的,但他们会询问是否会自动删除附加到这些div的任何事件。由于已删除附加的div类eventAttached,因此将自动删除该事件。因此,如果删除了所有类eventAttached,则该类上附加的任何事件也将被删除。已知附加的处理程序会阻塞垃圾收集器。除非您正在开发一个框架或遇到性能问题,否则我不会担心它。是的,ianpgall是正确的。我想知道事件处理程序是否也可以自动删除。
function removeEventHandler(elem,eventType,handler) {
 if (elem.removeEventListener) 
    elem.removeEventListener (eventType,handler,false);
 if (elem.detachEvent)
    elem.detachEvent ('on'+eventType,handler); 
}