【问题标题】:Do I need to call removeEventListener before removing DOM elements? [duplicate]在删除 DOM 元素之前我需要调用 removeEventListener 吗? [复制]
【发布时间】:2014-09-22 09:53:13
【问题描述】:

说,我有以下 HTML:

<div id="myDiv">
</div>

我在其中动态添加了 child html 及其自己的点击事件处理程序:

document.getElementById("myDiv").innerHTML = 
      '<input type="button" id="idBtn" value="+">';
document.getElementById("idBtn").addEventListener("click", onClick);

然后根据页面上的某个用户操作,我通过删除 div 中的元素来更改它:

document.getElementById("myDiv").innerHTML = "";

在此之前我是否需要在idBtn 上致电removeEventListener()

PS。这可能是单个页面上的重复操作。

【问题讨论】:

标签: javascript html dom


【解决方案1】:

插入

var Element = document.getElementById('idBtn');
Element.parentNode.removeChild(Element);

之前

document.getElementById("myDiv").innerHTML = "";

元素的监听器将被元素移除

【讨论】:

    【解决方案2】:

    是的,在删除 DOM 元素之前调用 removeEventListener() 是一个很好的做法。否则您的网页可能会出现很多问题

    【讨论】:

    • 好的。但是如果addEventListener 被库隐式调用,比如jQuery,应该怎么办?比如$(".className").click(function(e){doStuff();});?
    猜你喜欢
    • 2012-06-13
    • 2015-02-17
    • 2011-10-24
    • 2017-03-15
    • 1970-01-01
    • 2011-08-27
    • 1970-01-01
    • 2011-11-24
    • 2013-04-29
    相关资源
    最近更新 更多