使用javascript删除元素的问题

时间:2015-04-01 23:12:50

标签: javascript events

我有一个函数,在你双击它后,使用目标Event和removeChild删除一个元素。如下图所示:

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

它确实有效,你双击该元素(在这种情况下只有一个方格),它会在一秒后消失。但是,如果你双击它外面的空间(我想的身体),那么一切都会被删除。 jsfiddle for demonstration:https://jsfiddle.net/8ma5ayqj/

有没有办法防止这种情况发生,而不直接参考形状?就像有几个不同的div我想要发生这种情况。

2 个答案:

答案 0 :(得分:0)

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

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

或者您可以检查该功能,目标是否为蓝色方块本身。

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

否则该事件适用于document

答案 1 :(得分:0)

了解这一点:

//<![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);
}
}
//]]>