使用javascript删除元素时出现的问题

Problems with removing an element with javascript

本文关键字:问题 javascript 删除 元素 使用      更新时间:2023-09-26

我得到了一个函数,它在双击元素1秒后删除元素,使用目标Event和removeChild。如下所示:

function remove(e) {
    var target = e.target;
    setTimeout(function(){
        target.parentNode.removeChild(target);
    }, 1000);
}
document.addEventListener("dblclick", remove, false);

它确实有效,双击元素(在这种情况下只有一个正方形),一秒钟后它就会消失。然而,如果你双击它外面的空间(我想是身体),那么所有的东西都会被移除。jsfiddle演示:https://jsfiddle.net/8ma5ayqj/

有没有一种方法可以防止这种情况发生,而不直接参考形状?就像如果有几个不同的div,我希望这种情况发生。

您已经将addEventListener设置为整个document。你可以写这样的东西:

yourSquareNode.addEventListener("dblclick", remove, false);

或者,您可以在函数中检查目标是否为蓝色正方形本身。

if(e.target == yourSquareNode){
  …
}

否则,该事件将应用于document

学习以下内容:

//<![CDATA[
var pre = onload;
onload = function(){
if(pre)pre();
var doc = document, bod = doc.body;
function E(e){
  return doc.getElementById(e);
}
E('#clickId').onclick = function(){
  this.parentNode.removeChild(this);
}
}
//]]>