【问题标题】:cloned item when clicked to , gets back to original form but doesn't get removed单击时克隆项目,返回原始形式但不会被删除
【发布时间】:2015-10-17 12:42:40
【问题描述】:

我克隆了一行元素。克隆后,原始文本框元素被替换为链接。然后,如果用户选择删除克隆的项目,它会以原始形式返回到原始位置,即 tetxbox。这种倒车效果很好。只是没有删除克隆项目。

当点击删除时,克隆的项目被删除但不是全部。单击的链接的值附加到列表中克隆项目的下一个。为什么链接没有被删除?

下面忽略主题名称,重点关注带有RM开头的值的链接 移除之前点击的(克隆项目)

删除点击后(克隆项目)

这就是我克隆的方式:

function getText(param)
{
  var clony = $("div.clone_this#"+param).remove().clone(true, true).insertBefore("#sub");
  var price = $("input[type=text].text_"+param).val();
 // alert(price);
  clony.find('input[type=text]').replaceWith("<a href='ch'><span class='green' style='font-style:italic;'>RM "+price+"</span></a>");
   clony.find('.cr').append("<a href='del' onclick=removeThis('"+param+"')><img src='/register/cross.png'></a>");

}

这就是我删除元素并将其更改回原始形式的方式。

function removeThis(param)
{
     event.preventDefault(); 


     $("div.clone_this#"+param).detach().appendTo("#sub");
     var price = $("a[href=ch]").text();
     $("div.clone_this#"+param).find($("a[href=ch]").text(price)).replaceWith("<input type='text' onfocusout='getText("+param+")' class='text_"+param+"' val='"+price+"' placeholder='RM'>");

     $("div.clone_this#"+param).find("a[href=del]").remove();
     return false;
}

由 jquery 注入的 HTML(仅包装器)内容

    <h2>Finally, choose your Course:</h2>
    <div class="row">
        <div class="small-12 medium-12 large-12 columns" class="choosen_subjects">
        </div>
    </div>

    <div class="row">
        <div class="small-12 medium-12 large-12 columns" id="sub">

<!--original list goes here-->
        </div>
    </div>

【问题讨论】:

  • 能否提供 jsfiddle 或 HTML 代码的演示?
  • @IrvinDominin,我用 HTML 更新了我的帖子,但是内容是由 jQuery 附加的
  • @IrvinDominin,供您参考,如果我只使用 $("div.clone_this#"+param).detach().appendTo("#sub");没有这样的问题。只有当我使用它下面的代码行时,它才会附加上一个链接的值

标签: javascript jquery


【解决方案1】:

最后,我自己找到了答案。 $(this) 的使用解决了我的问题。

function removeThis(param)
{
     event.preventDefault(); 

     $("div.clone_this#"+param).detach().appendTo("#sub");
     var price = $("a[href=ch]").text();
     $(this).find($("#sub a[href=ch]").text(price)).replaceWith("<input type='text' onfocusout='getText("+param+")' class='text_"+param+"' val='"+price+"' placeholder='RM'>");
    $("div.clone_this#"+param).find("a[href=del]").remove();
     return false;
}

【讨论】:

    猜你喜欢
    • 2019-12-25
    • 2016-10-07
    • 2013-09-15
    • 2010-10-13
    • 1970-01-01
    • 2020-07-27
    • 2017-10-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多