Jquery 是否将select2应用于克隆节点中的元素?
全部, 我有一个PHP模板文件,它生成一个带有3个select字段的隐藏divJquery 是否将select2应用于克隆节点中的元素?,jquery,jquery-select2,Jquery,Jquery Select2,全部, 我有一个PHP模板文件,它生成一个带有3个select字段的隐藏div <div> <div class="form-group accessory collapse"> <select class="accessory" style="width:50%"> </select> <span class="input-group-addon">×</span>
<div>
<div class="form-group accessory collapse">
<select class="accessory" style="width:50%">
</select>
<span class="input-group-addon">×</span>
<select class="accessoryQuantity" style="width:10%">
</select>
<select class="accessoryType">
</select>
</div>
然后,我尝试像这样将select2应用于克隆的jQuery对象,但它只会弄乱整个克隆节点
$newItem.select2();
如何将select2应用于克隆节点
注意:我尝试将select2应用于隐藏的selects,但当您克隆它时,它会弄乱select2下拉列表。尝试更改
$newItem = $('.form-group. .accessory .collapse').clone();
到
我在过去也遇到过同样的问题,我发现解决这个问题的最好办法是在克隆原始元素之前销毁它,然后在原始元素和克隆元素上重新初始化select2 e、 g
整个过程非常快,因此我在看到select2被销毁并在原始select上重新初始化时没有遇到任何问题。此外,克隆不会将元素添加到DOM中。您必须手动添加它。您可以尝试类似$newItem.appendTo(“body”);在应用select2之前,我知道这一点,但是我如何在内存中而不是在DOM中添加select2?为什么要这样做?对DOM中不存在的元素使用select2没有任何意义。举一个你想要达到的目标的例子会有所帮助
$newItem = $('.form-group. .accessory .collapse').clone();
$newItem = $('.form-group.accessory.collapse').clone();
$original.select2('destroy');
var $clone = $original.clone();
// add the clone to the DOM, e.g.
$clone.insertAfter($original);
$original.select2({options});
$clone.select2({options});