tokenfield不适用于jQuery Clone

时间:2019-06-22 00:16:45

标签: javascript jquery html bootstrap-tokenfield

您好,我正在使用tokenfield创建输入标签。

我尝试克隆元素没有成功。有什么办法可以进行正确的克隆吗?这是动态表格。

问题:克隆后,字段不起作用。我认为问题出在令牌上。

这是我的JavaScript代码:

$('.tokenfield').tokenfield();

这是我的克隆功能:

$('.clone').on('click',function(){
  var newLine = $(".attribute:first").clone();
  $("#variants").append(newLine);
});

这是我的HTML代码:

<div id="variants">
  <div class="row attribute">
    <div class="col-lg-4">
      <div class="input-group"> <span class="input-group-prepend">
        <button class="btn btn-light clone" type="button"><i class="icon-plus3"></i></button>
        </span> <input type="text" class="form-control" placeholder="Left button"> </div>
      </div>
      <div class="col-lg-8">
        <div class="form-group mb-1"> <input type="text" class="form-control tags tokenfield" name="variant[value][]" value=""><br>
      </div>
    </div>
  </div>
</div>

1 个答案:

答案 0 :(得分:0)

您正在克隆整个.attribute分区...,其中包括一个input,该实例在...上具有 tokenkenfield 实例。

正如Barmar所说,.clone(true)将“深度克隆”,这意味着它将同时克隆属性和事件……但是所谈论的是实例一个孩子的插件。那是故事的结局;)

很高兴,有办法。您只需在该新input上创建 tokenkenfield 的另一个实例。

类似这样的东西:

$('.clone').on('click',function(){
  var newLine = $(".attribute:first").clone();
  $("#variants").append(newLine);
  $("#variants").find(".tokenfield").last().tokenfield();  // New instance here.
});

免责声明: 未经测试的(但是,希望您有这个概念...;))