我将datepicker附加到全局脚本文件中的输入中,如下所示:
$(document).on("focusin",".datePick", function () { $(this).datepicker({ dateFormat: "dd/mm/yy", changeMonth: true, changeYear: true, onClose: function () { $(this).valid(); } }); });
在特定页面上,模态对话框(还有jquery ui)中有输入(将与datepicker一起使用),我通过$ .load()调用该页面并注入其他页面的div中。
上面的代码对于其他页面中的静态输入非常有效,但对于上面的scenerio,它显示的是datepicker对话框很好,但是当我单击一个日期时,它会抛出错误(f未定义)。编辑:VS2010抛出“无法设置属性’currentDay’:对象为null或未定义”
有人建议使用live()方法,但我不想使用不建议使用的方法。.该问题该怎么办?
提前致谢
奥兹古
正如我在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('<input class="datePick" name="datepicker" />'); });
HTML:
<div id="focusin"></div>
只要您的模式div出现在加载中,它就应该能够在加载后捕获您的输入。