我已设置JSFiddle来证明我的问题。
我已经改变了克隆的方式,使其更具通用性,因此我不需要为不同的表重用代码。通常,对于select2元素,我会做这样的事情
$(".campaignType", $tr).select2({
tags: true
});
这意味着我不需要销毁它。但是,在这种情况下,它似乎不起作用。正如您在小提琴中看到的那样,当添加一行时,第二行上的选择不起作用。它似乎创造了两个跨度。
有什么方法可以让它发挥作用吗?
由于
答案 0 :(得分:4)
问题来自于尝试克隆Select2框并且它无法跟踪它。
要在模板行上解决此问题,我不会初始化Select2。我用initThings
隐藏了模板行。接下来在add_row
方法中我现在调用add_row
方法,以创建第一个可见行。
{{1}}方法现在可以成功设置Select2,因为它从未在克隆行上初始化。
我的解决方案是基本上保持模板行不被修改,并仅在生成的行上初始化Select2和日期选择器。