jQuery - 在document.ready之前运行一个函数......但不要太早

时间:2010-07-04 04:51:41

标签: jquery timing document-ready

我有一个包含div的页面,当页面加载时必须通过JS调整大小。为了做到这一点,我给它一个760px的“默认宽度”,然后运行以下代码:

function resizeList()
{
    var wlwidth,iwidth,nwidth;
    wlwidth = document.body.clientWidth - 200 - 60;
    iwidth = 320;
    nwidth  = Math.floor(wlwidth / iwidth) * iwidth;
    $('#list').css('width',nwidth);
}

$(document).ready(function(){
    // if we're looking at a list, do the resize-thing, now and on window resize
    if (window.location.pathname.toString().split('/')[1] == "list")
    {
        resizeList();
        window.onresize = resizeList;
    }
});

但是,由于#list div包含大量图像,因此页面可能需要一段时间才能加载。因此,仅在所有内容完成加载之后扩展div以填充正确的宽度。我不能把它从$(document).ready函数中删除,否则它会错误地说document.body未定义。

有没有办法在加载所有内容之前调整#list div的大小?

修改
请参阅:http://www.google.com/images?q=whatever
他们已经实现了我想要成功做的事情。列表在页面加载时立即正确调整大小,然后填充。您可以通过调整窗口大小并观察元素平滑移动来告诉他们通过JS调整大小。可悲的是,谷歌的JS并不是世界上最容易阅读的叹息

1 个答案:

答案 0 :(得分:4)

它尽快运行,$(document).ready是dom完成渲染时发生的事件。

您应该添加加载屏幕onload,然后在重新调整大小后将其淡出。