【发布时间】:2011-05-07 16:53:56
【问题描述】:
我正在开发一个 Django 项目。但我的问题是在 JQuery 上。 我使用jquery.formset.jsJQuery插件在inline_formsets、formset_factories中动态添加表单。这很好用。它使用其他装饰标签(如 div、span、img..)复制第一行元素,并在表格底部添加新行。所以重复的行可以像原点一样出现。
我还在表单中使用jquery ui (datepicker, autocomplete..etc)。
复制会复制所有内容,甚至是日期选择器和自动完成附加的 html,因为插件会尽量不留下任何界面片段。当它克隆第一行时,所有内容都被克隆,甚至事件也被克隆。所以当我点击新出现的日期选择器输入时,日历事件在第一行的元素上起作用。
我正在努力寻找决定。到目前为止,这是我的想法..
-
将 jquery ui(日期选择器和自动完成)声明为 live?喜欢
$(".dates").live('...', function() { $(this).datepicker(); })
但我不确定应该为此处理哪个事件。我想处理新创建或附加的元素是不可能的。
-
将脚本放在行内?在元素之后
$("#id_birthday_1").datepicker();这似乎是最好的主意,但复制已经复制了额外的元素/html。所以它会重新渲染元素。
我应该编辑 js 插件吗?就像绑定所有 jquery ui 的事件声明一样,除了渲染和附加和样式。那将是一个巨大的混乱。我不想这样搞砸了。每次如果我需要添加一个新的ui,我应该不断地编辑那个js
每一个想法都将不胜感激:)
【问题讨论】:
-
我打赌两个盒子的 ID 相同
-
其实没有.. js插件使用表单前缀创建新的id
标签: jquery django jquery-ui django-forms