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