我使用MagnificPopup弹出表单。表单有datepicker字段。但是,在我的主页面的日期字段上调用datepicker的代码不适用于外部弹出窗体中的日期字段,因为它不在页面加载的DOM中:
$(function(){
$(".datepicker").datepicker();
}
为了避免这种情况,我添加了代码以在" open"中的日期字段上调用datepicker。回调MagnificPopup:
$('#myForm').magnificPopup({
type: 'ajax',
preloader: false,
// add callback so we can apply datepicker to date fields
callbacks:{
open: function(){
$(".datepicker").datepicker();
}
}
});
然而,"打开"在弹出窗口完全打开之前,回调似乎运行得太快了。 datepicker功能不适用于字段。但是,当我使用调试器遍历代码时,它会减慢它以使datepicker代码实际应用。同样,如果我向回调函数添加警报,则datepicker代码可以正常运行。
我可以通过使用setTimeOut添加一个小延迟来编写代码:
open: function(){
window.setTimeout(function() {
$(".datepicker").datepicker();
}, 800);
}
但这感觉很糟糕。有没有直接的方法来实现这一目标? (我不会在MagnificPopup docs中看到" afterOpen"回调)
答案 0 :(得分:2)