我有一个使用"复制"链接克隆div,然后隐藏FIRST"复制"链接,只留下最近的链接可见。
当我删除克隆的div时,我似乎无法正确遍历DOM以显示第一个"重复"再次链接。
<div class="group">
<a class="remove">x</a> // hidden until div is cloned
<a class="add">Duplicate</a>
</div>
克隆div:
$("a.add").click(function() {
$(this).closest(".group").find("a.remove").show();
$(this).closest(".group").clone(true).insertAfter($(this).closest(".group")).addClass("duplicated").find("a.remove").show();
$(this).parent().find("a.add").toggle();
});
删除克隆的div +添加&#34;复制&#34;链接回来:
$(".remove").click(function() {
$(this).parent(".group").remove();
});
$(".duplicated .remove").click(function() {
$(this).parent(".group").find("a.add").show();
});
我已经尝试了.prev(),。parent()和.closest()的百万种组合,但无法让它们中的任何一种工作。
答案 0 :(得分:1)
你的下面的代码不起作用,因为你操纵那个不再存在的dom。并且当您已经拥有click事件时,无需添加/绑定该事件。
$(".duplicated .remove").click(function() {
$(this).parent(".group").find("a.add").show();
});
我更改了该功能以完成您的要求。
$(".remove").click(function() {
if($(this).parent().find('.add').is(':visible'))
$(this).parent('.group').prev('.group').find("a.add").show();
$(this).parent(".group").remove();
});
这只能看到重复的&#39;如果当前节点可以看到重复的链接,则链接到它的前一个节点。 希望这会有所帮助!