加载所有图像后执行代码

Execute code after all images are loaded

本文关键字:执行 代码 图像 加载      更新时间:2024-07-04

我想在加载所有图像后进行一些接口修复(需要保存图像的元素的高度,并使用它们来更改其他元素的高度)我将加载事件附加到所有图像,但我的加载函数只执行一次。我试着只使用jQuery:

$(function() {
    var $img = $('img');
    var length = $img.length;
    var count = 0;
    function load() {
       console.log(++count + ' == ' + length);
       if (count == length) {
          // all images loaded
       }
    }
    $img.load(load).error(load);
});

我还尝试使用onload和oneror事件:

$img.each(function() {
    this.onload = load;
    this.onerror = load;
});

但当页面加载时,我只有一个日志:

1 == 33

(我正在Xubuntu上的Chromium中测试,开发工具和缓存已禁用)

我做错了什么?如何在加载所有图像后执行代码?

听起来应该处理windowload事件:

$( window ).load(function() {
// Glorious code!!
}

从文档:"当页面完全加载时运行一个功能,包括图形。"

http://api.jquery.com/load-event/

页面加载后执行该功能

$(window).load

这样,所有元素都已就位并准备好进行"测量"