当我使用live声明一个datepicker时,似乎按预期工作,直到你更改月份.然后,如果按下月份和1899年12月,如果按回月份,则不会进入下一个月或上个月,而是跳回到1900年1月.
运用
$('.datepicker').live('focus', function () {
$(this).datepicker('destroy').datepicker();
});
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
谢谢
我认为你看到问题的一个可能原因是,当你使用焦点附加到输入时,你正在销毁你的日期选择器并重新制作一个.但是,当您单击输入时,它会运行,因此会破坏日期选择器,并显示一个.但是,当您单击下一个或上一个时,您最初会忽略输入,但是datepicker脚本将"重新聚焦"它,因此会触发销毁并重新创建一个日期选择器.
我假设你正在使用live来将一个日期选择器附加到一个动态输入 - 你总是可以$('.datepicker').not('.hasDatePicker').datepicker();
在你success:......
的ajax调用的回调中使用call,我将假设你正在创建你的新输入.这将有一个影响,即添加一个尚未添加.datepicker()
的类的任何输入项.(添加了一个输入,也会添加类)datepicker
.datepicker()
.datepicker()
hasDatePicker
另一种方法 - 与现场通话保持一致 - 有专业和有效
.datepicker()
一次.因此,为了与现场保持一致,您可以执行以下操作:
$('.datepicker').live('focus', function () {
$(this).not('.hasDatePicker').datepicker();
});
Run Code Online (Sandbox Code Playgroud)
在这里看到它
这将附上.datepicker()
与类中的任何输入datepicker
这还没有已经有了一个.datepicker()
连接(类hasDatePicker
),这应该救你破坏并重新创建所有datepickers.
这与@Andrew Whitaker的解决方案相同