我正在使用 MagnificPopup 弹出一个表单。该表单具有日期选择器字段。但是,在我的主页中的日期字段上调用日期选择器的代码不适用于外部弹出表单中的日期字段,因为它不在页面加载时的 DOM 中:
$(function(){
$(".datepicker").datepicker();
}
为了避免这个问题,我添加了代码来在 MagnificPopup 的“open”回调中的日期字段上调用 datepicker:
$('#myForm').magnificPopup({
type: 'ajax',
preloader: false,
// add callback so we can apply datepicker to date fields
callbacks:{
open: function(){
$(".datepicker").datepicker();
}
}
});
但是,在弹出窗口完全打开之前,“打开”回调似乎运行得太快。日期选择器功能不适用于字段。但是,当我使用调试器遍历代码时,它会减慢速度,足以使日期选择器代码实际应用。同样,如果我向回调函数添加警报,则日期选择器代码将正常运行。
我可以通过使用 setTimeOut 添加一个小的延迟来解决这个问题:
open: function(){
window.setTimeout(function() {
$(".datepicker").datepicker();
}, 800);
}
但这感觉很奇怪。有什么简单的方法可以实现这一点吗? (我在 MagnificPopup docs 中没有看到“afterOpen”回调)
最佳答案
有 ajaxContentAdded
来 http://dimsemenov.com/plugins/magnific-popup/documentation.html#ajax-type
关于jquery - "Open"回调执行速度太快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30285090/