查看我的 jsFiddle http://jsfiddle.net/JV8eU/
我已经使用 jQuery函数克隆了div
标签clone()
当有人单击“添加新”时,div
将添加新的标签克隆,当有人单击“删除”时,该div
标签将被删除。
这样做有一个问题,原来的 div 标签也包含删除按钮,所以当时有人点击它,原来的 div 标签也被删除了。
我不想在执行代码时显示删除链接,当有人单击添加时,删除链接会与 div 标签的克隆一起出现。
查看我的 jsFiddle http://jsfiddle.net/JV8eU/
我已经使用 jQuery函数克隆了div
标签clone()
当有人单击“添加新”时,div
将添加新的标签克隆,当有人单击“删除”时,该div
标签将被删除。
这样做有一个问题,原来的 div 标签也包含删除按钮,所以当时有人点击它,原来的 div 标签也被删除了。
我不想在执行代码时显示删除链接,当有人单击添加时,删除链接会与 div 标签的克隆一起出现。
首先在删除按钮 div 中将其设置为隐藏,并在代码中进行以下更改...
$(document).ready(function(){
$("#Add").click(function(){
$("#id").removeAttr("hidden");
$("#id").show("slow");
var obj = $("div.content").eq(0).clone(); //this will clone the html elements
$("div.row").append(obj); //this will append to the existing elements
});
});
和身体..
<div class="pull-left"><a href="#" onclick='removeDOM(this)' id="id" hidden>Remove</a></div>
你是这个意思吗?http://jsfiddle.net/JV8eU/11/
您可以在添加新内容之前动态添加删除 div。像这样:
obj.append('<div class="pull-left"><a href="#"onclick="removeDOM(this)">Remove</a></div>');
永远记住,当覆盖默认功能时,这是你的朋友:
e.preventDefault();
这个 JSFiddle 似乎工作得很好:http: //jsfiddle.net/turiyag/JV8eU/9/ 如果您还想维护初始元素,这段代码可以解决问题:http: //jsfiddle.net/turiyag/ JV8eU/13/
将行的模板放在单独的元素中:
<div class="template">
<div class="content">
...the row template goes here
</div>
</div>
<div class="row">
</div>
隐藏模板:
.template { display: none; }
从一开始复制模板中的行一次,并在单击链接时:
function copy() {
$("div.row").append($(".template .content").clone());
}
$(document).ready(function () {
copy();
$("#Add").click(copy);
});
演示:http: //jsfiddle.net/JV8eU/14/
只是想到了更好的实现。不要总是隐藏原始的,而是有条件地隐藏它。
function removeDOM(thisObj){
if($('.content').size() == 2){
$($('.remove-link').not(thisObj)[0]).hide();
}
if($('.content').size() != 1)
$(thisObj).parent().parent().remove();
}
好处是,用户可以删除他/她想要的任何行。
从 html 中删除按钮并在单击按钮时附加它....
var newRemoveButton ='<div class="pull-left"><a href="#" onclick='removeDOM(this)' id="id" hidden>Remove</a> </div>';
$(newRemoveButton).appendTo(obj);
您还可以查看此链接以添加一些效果。