Javascript 加载所有图像后执行代码

Javascript 加载所有图像后执行代码,javascript,jquery,image,Javascript,Jquery,Image,我想在加载所有图像后进行一些界面修复,需要保存图像的元素的高度,并使用它们更改其他元素的高度。我将加载事件附加到所有图像,但我的加载功能只执行一次。我尝试只使用jQuery: $(function() { var $img = $('img'); var length = $img.length; var count = 0; function load() { console.log(++count + ' == ' + length);

我想在加载所有图像后进行一些界面修复,需要保存图像的元素的高度,并使用它们更改其他元素的高度。我将加载事件附加到所有图像,但我的加载功能只执行一次。我尝试只使用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和onerror事件:

$img.each(function() {
    this.onload = load;
    this.onerror = load;
});
但当页面加载时,我只有一个日志:

1 == 33
我在Xubuntu上用Chromium进行测试,并禁用了开发工具和缓存


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

在页面加载完成后执行该功能

$(window).load

这样,所有元素都已就位并准备好“测量”

听起来您应该处理窗口的加载事件:

从文档:在页面完全加载(包括图形)时运行函数


$window.loadfunction{}不,他不应该这样做,因为某些旧浏览器无法对已加载的图像触发onload事件。但是,如果OP没有为每个图像使用特定的onload事件,这将让他计算每个图像的高度,因此这是一个可能的解决方案对不起,我应该更清楚地说,是的,您是正确的,这应该取代单个处理程序,以支持更广泛的方法。
$( window ).load(function() {
// Glorious code!!
}