我继承了一堆不同质量的代码,我正在修复一堆错误的东西。它做的一件事是有一个表格输入表,其中一个使用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”...)行中,我在控制台上看到“焦点”,但从未看到日期选择器出现。
答案 0 :(得分:7)
当您创建datepicker实例时,jQuery会为其分配一个ID,当您克隆它时,您将重复它。而是通过以下方式动态创建datepicker实例:
$(document).on('focus', ".datepicker", function () {
$(this).datepicker( "destroy" ).datepicker();
})
<强> jsFiddle example 强>
这适用于动态创建的元素,jQuery将正确管理ID。