0

我对 jQuery 函数有疑问clone()。我认为问题出在withDataAndEvents这个方法的输入参数上。

最初,我正在编写一个具有动态行的表。单击仅放在第一行的按钮时,我正在动态添加行。第一行最初包含许多输入字段和组合框。每个字段都由 ajax 调用初始化。并且对字段的每个操作都会导致对一行的整个字段进行刷新(过滤)。我还在输入字段上使用自动完成功能。

第一行完美运行。但是,在克隆标签时:

  1. 如果我没有在第一行输入值,则克隆的和第一行工作正常
  2. 如果我在第一行字段中输入一个或多个值,并且在克隆 之后,只有第一行字段仍然有效。在这种情况下,如果我尝试更改组合框的值(它会为所有相关的行字段触发更改事件),尽管在更改自动完成数据时使用了 ID,但第一行的字段会受到影响。单击按钮克隆小部件时,会动态创建字段、组合框、表行的 ID。

我写的代码太长了,所以我创建了一个小提琴并简化了案例,但仍然有同样的问题。

我尝试了很多我发现的这样的建议这个这个徒劳的:-( ( data.('autocomplete', null), autocomplete("destroy")...)

你对这个问题有什么想法吗?

提前致谢

4

2 回答 2

1

除了测试中的拼写错误(您是按类选择而不是按 id 选择新元素)之外,基本问题是您在将其添加到 DOM 之前应用了自动完成功能。

JSFiddle:http: //jsfiddle.net/TrueBlueAussie/87jcw1y0/2/

我只是颠倒了这两行的顺序:

$('.body').append(clone);
applyAutoComplete2('#myinput' + inc);

原因...一些插件使用与 DOM 元素关联的存储数据,或将事件附加到祖先等。这些都不会发生在断开连接的 DOM 元素上,因此只需先将其附加到 DOM。

于 2014-10-08T09:53:36.183 回答
0

我想你问这个检查这个链接http://jsfiddle.net/bsarunmca/87jcw1y0/3/

applyAutoComplete1('#myinput1');

$("button").click(function() {
    inc = inc+1;
    $('#myinput1').clone().attr('id','myinput'+inc).appendTo('.add-this');
    $('#myinput'+inc).val('');
    applyAutoComplete2('#myinput'+inc);

});
于 2014-10-08T10:32:54.277 回答