Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery &引用;开放式;回调执行得太快_Jquery_Datepicker_Delay_Magnific Popup - Fatal编程技术网

Jquery &引用;开放式;回调执行得太快

Jquery &引用;开放式;回调执行得太快,jquery,datepicker,delay,magnific-popup,Jquery,Datepicker,Delay,Magnific Popup,我正在使用放大弹出窗口弹出一个表单。表单具有日期选择器字段。但是,在“我的主页”中的日期字段上调用datepicker的代码不适用于外部弹出窗体中的日期字段,因为它不在页面加载时的DOM中: $(function(){ $(".datepicker").datepicker(); } 为了避免这种情况,我添加了在放大弹出窗口的“打开”回调中的日期字段上调用datepicker的代码: $('#myForm').magnificPopup({ type: 'ajax', p

我正在使用放大弹出窗口弹出一个表单。表单具有日期选择器字段。但是,在“我的主页”中的日期字段上调用datepicker的代码不适用于外部弹出窗体中的日期字段,因为它不在页面加载时的DOM中:

$(function(){
   $(".datepicker").datepicker();
}
为了避免这种情况,我添加了在放大弹出窗口的“打开”回调中的日期字段上调用datepicker的代码:

$('#myForm').magnificPopup({
    type: 'ajax',
    preloader: false,
    // add callback so we can apply datepicker to date fields
    callbacks:{
        open: function(){
            $(".datepicker").datepicker();  
        }   
    }
});
但是,在弹出窗口完全打开之前,“打开”回调似乎运行得太快。日期选择器功能未应用于字段。但是,当我使用调试器遍历代码时,它会将其速度减慢到足以让datepicker代码实际应用的程度。类似地,如果我向回调函数添加警报,datepicker代码将正常运行

我可以通过使用setTimeOut添加一个小延迟来解决这个问题:

open: function(){
    window.setTimeout(function() {
       $(".datepicker").datepicker();
    }, 800);
}

但这感觉有点不舒服。有什么简单的方法可以做到这一点吗?(我在中没有看到“afterOpen”回调)

添加了
ajaxContentAdded
,请添加jsbin。您是否尝试将data.status为“ready”的“updateStatus”事件的回调放入?