jquery-ui datepicker没有出现在动态输入上

Mik*_*oss 1 javascript jquery events jquery-ui jquery-ui-datepicker

我继承了一堆不同质量的代码,我正在修复一堆错误的东西.它做的一件事是有一个表格输入表,其中一个使用jquery-ui Datepicker.还有一个按钮可在表格底部创建一个新行.新行的Datepicker永远不会出现.

我已经在SO上列出了这个问题几次,但这些解决方案都没有奏效.我正在把我现在拥有的东西拿出来.我的小伙子在:

http://jsfiddle.net/squarepegsys/G8WEC/2/

我代码的内容在这里:

tr.find(".datepicker").on("focusin",function() {
    console.log("got focus");
    $(this).datepicker();

}); 
Run Code Online (Sandbox Code Playgroud)

在on("focusin"...)行中,我看到控制台上的"焦点",但从未看到日期选择器出现.

j08*_*691 7

当您创建datepicker实例时,jQuery会为其分配一个ID,当您克隆它时,您将复制它.而是通过以下方式动态创建datepicker实例:

$(document).on('focus', ".datepicker", function () {
    $(this).datepicker( "destroy" ).datepicker();
})
Run Code Online (Sandbox Code Playgroud)

jsFiddle例子

这适用于动态创建的元素,jQuery将正确管理ID.

  • @ j08691,我修复了你的例子,当你第一次单击文本框并且在"添加行"之后它不起作用,请看一下[jsFiddle示例](http://jsfiddle.net/Sergey4/WVguL) (4认同)