切换Cloned Elements jQuery上链接的可见性

时间:2016-08-25 16:23:53

标签: jquery

我有一个使用"复制"链接克隆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();
});

JSFiddle

我已经尝试了.prev(),。parent()和.closest()的百万种组合,但无法让它们中的任何一种工作。

1 个答案:

答案 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;如果当前节点可以看到重复的链接,则链接到它的前一个节点。 希望这会有所帮助!