我有一个非常奇怪的问题。 我创建了一个分配了datepicker的字段。
此字段由AJAX调用加载到div中。
总之,这已经有效了......但是有一个问题。 它只有在我启动datepicker之前设置警报代码时才有效。
当我删除警报时。它只是停止工作。
初始化代码在另一个函数中:
alert('kut');
$("#mini_calendar").datepicker({
defaultDate: "now",
constrainInput: false,
changeMonth: true,
numberOfMonths: 2,
onClose: function (selectedDate) {
}
});
我希望有人知道我做错了什么。
修改
万分感谢。
解决方案是:
interval = setInterval(function(){
if($("#mini_calendar").length > 0) {
$("#mini_calendar").datepicker({
defaultDate: "now",
constrainInput: false,
changeMonth: true,
numberOfMonths: 2,
onClose: function (selectedDate) {
}
});
clearInterval( interval );
}
}, 300);
编辑:
我在Ajax上取得成功:
///######## IN CASE OF SUCCESS
success: function (response) {
if (response != '') {
$("[@targetDiv]").html(response);
DateNav_CalendarInit(DisplayType);
}
else {
alert('error! Something went wrong during the obtaining of data!');
}
}
“DateNav_CalendarInit()”调用初始化代码
答案 0 :(得分:2)
如果没有警报,您会尝试在DOM元素实际存在之前捕获它。
您应该等待 Document Ready 事件:
示例:
$(function(){
// .. your code here ..
}
...或者只是将您的javascript代码放在代码的底部(或者至少在* #mini_calendar之后)元素。
答案 1 :(得分:0)
前几天我也遇到了同样的问题,我是通过jquery load()函数完成的。
$('body').on('load change','your container element in which #mini_calendar will load',function(){ $("#mini_calendar").datepicker({ defaultDate: "now", constrainInput: false, changeMonth: true, numberOfMonths: 2, onClose: function (selectedDate) { } }); });
不要忘记替换容器元素选择器。否则代码将无效
如果不是这样,你可以设置间隔,检查元素中是否存在$('mini_calendar')。