我有一个函数,在你双击它后,使用目标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我想要发生这种情况。
答案 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);
}
}
//]]>