Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.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
Javascript 将脚本附加到头部后触发$.fancybox.init()_Javascript_Jquery_Fancybox - Fatal编程技术网

Javascript 将脚本附加到头部后触发$.fancybox.init()

Javascript 将脚本附加到头部后触发$.fancybox.init(),javascript,jquery,fancybox,Javascript,Jquery,Fancybox,我有一个API,它可以将fancybox脚本附加到客户端网页的head标记上,但显然这是在dom准备好之后发生的,因此fancybox的init函数没有被调用 在fancybox.js中: $(document).ready(function() { $.fancybox.init(); }); 我已尝试将其更改为: $(document).bind('ready', function() { $.fancybox.init(); }); 然后以不同的方式(逐个)触发dom就

我有一个API,它可以将fancybox脚本附加到客户端网页的head标记上,但显然这是在dom准备好之后发生的,因此fancybox的init函数没有被调用
在fancybox.js中:

$(document).ready(function() {
    $.fancybox.init();
});
我已尝试将其更改为:

$(document).bind('ready', function() {
    $.fancybox.init();
});
然后以不同的方式(逐个)触发dom就绪函数:

我还尝试在加载脚本时调用init函数:

$.fancybox.init();
似乎什么都不管用。
我确信fancybox.css、fancybox.js甚至mousewheel.js和easing.js都已加载到文档中,在尝试所有这些之前,我还添加了一个超时来确保。

所以问题是,在将js附加到head标记后,如何初始化fancybox插件?

我认为您不需要调用
$.fancybox.init()但只要在加载fancybox脚本后初始化正确的选择器,我就可以在API中尝试以下操作:

if (!jQuery.fn.fancybox){
    // fancybox is not loaded
    jQuery.getScript("{path}/jquery.fancybox.js"); // you may need to change the path
    setTimeout(function(){
        // init fancybox selector
        jQuery(".selector").fancybox();
    }, 100); // delay selector initialization
} else {
    // fancybox script is ready so initialize (re-init) selector
    jQuery(".selector").fancybox();
};
if (!jQuery.fn.fancybox){
    // fancybox is not loaded
    jQuery.getScript("{path}/jquery.fancybox.js"); // you may need to change the path
    setTimeout(function(){
        // init fancybox selector
        jQuery(".selector").fancybox();
    }, 100); // delay selector initialization
} else {
    // fancybox script is ready so initialize (re-init) selector
    jQuery(".selector").fancybox();
};