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

Problems with removing an element with javascript

我得到了一个函数,可以在你双击一个元素 1 秒后使用目标事件和 removeChild 删除它。如下图:

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

它确实有效,您双击该元素(在本例中只有一个方块),它会在一秒钟后消失。但是,如果您双击它外面的 space(我想是正文),那么所有内容都会被删除。用于演示的 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);
}
}
//]]>