DatePicker无法在ajax加载的页面中工作

我将datepicker附加到全局脚本文件中的输入,如下所示:

$(document).on("focusin",".datePick", function () { $(this).datepicker({ dateFormat: "dd/mm/yy", changeMonth: true, changeYear: true, onClose: function () { $(this).valid(); } }); }); 

在特定页面上,在modal dialog(也是jquery ui)中有输入(将与datepicker一起使用),我通过$ .load()调用该页面并在其他页面中注入div。

上面的代码非常适用于其他页面中的静态输入,但对于上面的场景,它显示了datepicker对话框,但是当我点击日期时,它会抛出错误(f未定义)编辑:VS2010抛出“无法设置值”属性’currentDay’:对象为null或未定义“

有人建议使用live()方法,但我不想使用弃用方法。我该怎么办?

提前致谢

Ozgu

正如我在TJ VanToll的回答中所提到的那样,只要你的触发器绑定到的父元素在DOM加载时就存在,你就可以了。

看一下这个小提琴的例子。

JS:

 $(function(){ $(document).on("focusin",".datePick", function () { $(this).datepicker({ dateFormat: "dd/mm/yy", changeMonth: true, changeYear: true, onClose: function () { $(this).valid(); } }); }); $('#focusin').append(''); });​ 

HTML:

 

只要你的模态div在加载时出现,它应该能够在加载后捕获你的输入。

我遇到了这个确切的错误,虽然我的答案对OP没有帮助,但未来可能会有所帮助。

当我与页面中的其他元素发生ID冲突时,我收到此错误消息。

使用livedelegateon不能使用jQuery UI小部件,因为它们是有状态插件,必须在存在必要的DOM节点后进行实例化。

您可以通过在注入其他标记后实例化datepicker来完成您正在寻找的内容。 这是一个例子 – http://jsfiddle.net/tj_vantoll/qN8dG/2/