使用 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);
}
}
//]]>
我得到了一个函数,可以在你双击一个元素 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);
}
}
//]]>