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

时间:2014-07-16 19:04:08

标签: javascript jquery jquery-ui events 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();

}); 

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

1 个答案:

答案 0 :(得分:7)

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

$(document).on('focus', ".datepicker", function () {
    $(this).datepicker( "destroy" ).datepicker();
})

<强> jsFiddle example

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