如何知道$(window).load();来自jquery的状态

时间:2010-04-27 00:18:47

标签: jquery progress

我使用Jquery UI进度条创建了一个加载进度条的网站。此进度条显示脚本加载的状态。样本是

$.getScript('_int/ajax.js',function() {
    $("#progressinfo").html("Loading Complete ...");
    $("#progressbar").progressbar({ value: 100 });
});

此进度条位于#indexloader,阻止网站加载,其CSS为:

#indexloader {
    z-index:100;
    position:fixed;
    top:0;
    left:0;
    background:#FFF;
    width:100%;height:100%;
}

进度条到达100%后,我想为我使用的<{p>}隐藏和删除#indexloader

$("#indexloader").fadeOut("slow",function() { $("#indexloader").remove(); });

但问题是,虽然脚本已加载,但页面未完全加载,我看到图像和其他内容仍在加载。

所以在淡化和移除#indexloader之前我想检查$(window).load()是否已经完成

有没有办法检查这个?

2 个答案:

答案 0 :(得分:9)

将属性添加到window

$(window).load(function() {
    window.loaded = true;
});

然后在隐藏window.loaded之前检查#indexloader

答案 1 :(得分:1)

是否在window.load选项上淡出了加载程序?似乎是做你想做的最简单的方法:

$(window).load(function() {
  $("#indexloader").fadeOut("slow",function() { $("#indexloader").remove(); });
});

或者,在window.load上设置变量,如下所示:

var loaded = false;
$(window).load(function() { loaded = true; });

然后更改您的淡出代码以查找它:

function fadeIndex() {
  $("#indexloader").fadeOut("slow",function() { $("#indexloader").remove(); });
}
if (loaded) fadeIndex(); //aleady loaded
else $(window).load(fadeIndex); //fade when we do load