我使用这样的函数从数组中加载图像:
for (var i = 0; i < images_list.length; i++) {
var img = new Image();
img.onload = function() {
images_objects.push(this);
showImages(images_objects);
};
img.onerror = function() {
};
img.src = images_links[i].image_url;
}
我需要正常工作的是showImages
功能。其目的是在images_object
填充数组中的图像时使用jQuery显示所有加载的图像。现在它放错了,只是为了让你知道我是怎么做的。我想在加载图像后应该运行回调。如何更好地做到这一点?
答案 0 :(得分:1)
只需使用辅助函数来存储新加载的图像,并检查是否所有图像都已加载,可能会有效。
...
img.onload = function() {
storeLoadedImage(this);
};
...
var storeLoadedImage = function(image) {
images_objects.push(image);
if (images_objects.length === images_list.length) {
showImages(images_objects);
}
};
答案 1 :(得分:0)
你不应该在循环中使用它。它将显示所有加载到第i次迭代的图像,而不是所有加载的图像,如果这是你想说的话。 只需将其添加为循环的第一行
if (i==images_list.length) {showImages(images_objects);}
据我所知,您希望在加载完所有内容后显示它们。