Javascript 将脚本附加到头部后触发$.fancybox.init()
我有一个API,它可以将fancybox脚本附加到客户端网页的head标记上,但显然这是在dom准备好之后发生的,因此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就
在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();
};