$('a.lightbox').hover(function () {
if (jQuery().lightbox) {
// required, otherwise lightbox.js will be loaded on hover each time
$("a.lightbox").lightbox({
'type': 'iframe',
'overlayOpacity': 0.5,
'width': 632,
'hideOnContentClick': false
});
} else {
// load script
$.ajax({
url: "js/lightbox.js",
dataType: 'script',
cache: true,
success: function () {
// load css
$('head').append('<link rel="stylesheet" type="text/css" href="css/lightbox.css">');
// lightbox function
$("a.lightbox").lightbox({
'type': 'iframe',
'overlayOpacity': 0.5,
'width': 632,
'hideOnContentClick': false
});
}
});
}
});
...这在本地机器上完美运行,但在上传到服务器时效果不佳,因为12kb lightbox.js和lightbox.css需要一些时间来加载。
我想做其中任何一个:
我更喜欢第三种选择,但不知道如何实现其中任何一种。
我很感激任何帮助!谢谢!
答案 0 :(得分:1)
success: function () {
// load css
$('head').append('<link rel="stylesheet" type="text/css" href="css/lightbox.css">');
WaitLightbox(function () {/*lightbox funcion*/});
}
function WaitLightbox(callback)
{
if (jQuery().lightbox === undefined)
setTimeout(function(){WaitLightbox(callback);}, 100);
else
callback();
}
答案 1 :(得分:0)
你可以使用jQuery部分在页面加载函数或ajax后加载没有定时器,只需在页面准备就绪后加载。
示例:
/* function to allow inclusion of other files
Included this way to allow addition AFTER the page loads- that is, fake inclusion in this Javascript file
*/
function includeJS(jsPath)
{
var script = document.createElement("script");
script.setAttribute("type", "text/javascript");
script.setAttribute("src", jsPath);
document.getElementsByTagName("head")[0].appendChild(script);
};
$(function()
{
includeJS('js/lightbox.js');
});
你可以用CSS文件做类似的事情。注意带有jquery的ajax加载在StackOverflow和jQuery文档的其他地方都有详细记载。
答案 2 :(得分:0)
好的,这对我有用:
setTimeout(function(){
$.ajax({
url: "js/lightbox.js",
dataType: 'script',
cache: true,
success: function () {
$('head').append('<link rel="stylesheet" type="text/css" href="css/lightbox.css">');
$("a.lightbox").lightbox({
'type': 'iframe',
'overlayOpacity': 0.5,
'width': 632,
'transitionIn': 'elastic',
'transitionOut': 'elastic',
'hideOnContentClick': false
});
}
});
}, 10000);
答案 3 :(得分:0)
我在这里发现了与此类似的内容http://www.1stwebdesigner.com/development/quick-tip-get-more-efficient-with-jquerys-getscript/我不知道这是否有帮助。