gpt4 book ai didi

javascript - 如何使用 onload 函数将值放入对象中?

转载 作者:行者123 更新时间:2023-11-28 02:08:41 25 4
gpt4 key购买 nike

我想获取图像大小并将其放入对象中。这是我编写的代码,但它没有按我的预期工作。

var images = { a: { src: 'http://aaa/'}, b: {src: 'http://bbb/'}, … };
for (var i in images) {
var img = new Image();
img.onload = function() {
images[i].width = this.width;
images[i].height = this.height;
}
img.src = images[i].src;
}

最佳答案

您的问题是,当调用回调时,i 将发生变化:它的值将是循环结束的值。

解决方案是将images[i]存储为立即调用的函数中的变量。将代码更改为

var images = { a: { src: 'http://aaa/'}, b: {src: 'http://bbb/'}, … };
for (var i in images) {
(function(o){
var img = new Image();
img.onload = function() {
o.width = this.width;
o.height = this.height;
};
img.src = o.src;
})(images[i]);
}

Demonstration (打开控制台查看图像)

关于javascript - 如何使用 onload 函数将值放入对象中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17421290/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com