我正在尝试在click div上添加一个追加菜单。但我在这里有一个问题。如何在第二次单击后删除附加的元素。在这方面,任何人都可以帮助我吗?
这是 codepen.io
中的DEMO页面的js
$(document).ready(function(){
$("body").on("click", ".menu-button", function(event){
event.preventDefault();
$(".menu-container").append('<div class="button"></div><div class="rebackbar"></div><div class="abc" id="myDiv"></div><div class="lBrgF"><div class="card"><span class="three-quarters-loader">Loading… </span></div></div>');
});
});
答案 0 :(得分:3)
似乎切换元素而不是添加它会更好,但你可以只是检查
var childNodes = $(".menu-container").children();
if (childNodes.length) {
childNodes.remove();
} else {
$(".menu-container").append("...");
}
答案 1 :(得分:1)
仅在内容不存在时才附加内容。
$(document).ready(function() {
$("body").on("click", ".menu-button", function(event) {
event.preventDefault();
if (!$('.button').length) {
$(".menu-container").append('<div class="button"></div><div class="rebackbar"></div><div class="abc" id="myDiv"></div><div class="lBrgF"><div class="card"><span class="three-quarters-loader">Loading… </span></div></div>');
} else {
$(".menu-container").html(''); // Empty after
}
});
});
答案 2 :(得分:1)
这是另一个解决方案
我已调用dblclick
事件来清空menu-container
的内容。这会清空整个div.Incase你要删除最后一个孩子,你可以找到长度并删除最后一个那样。
$("body").on("dblclick", ".menu-button", function(event){
$(".menu-container").empty();
});
<强> Working Demo 强>
答案 3 :(得分:1)
绝不是最优雅的解决方案,但可能是最简单的方法:
$(document).ready(function(){
$("body").on("click", ".menu-button", function(event){
event.preventDefault();
if($('.menu-container').html().length > 0) {
$(".menu-container").html(null)
}
else {
$(".menu-container").html('<div class="button"></div><div class="rebackbar"></div><div class="abc" id="myDiv"></div><div class="lBrgF"><div class="card"><span class="three-quarters-loader">Loading… </span></div></div>');
}
});
});