加载所有图像时运行功能

时间:2011-05-23 10:54:16

标签: javascript jquery html

我使用这样的函数从数组中加载图像:

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显示所有加载的图像。现在它放错了,只是为了让你知道我是怎么做的。我想在加载图像后应该运行回调。如何更好地做到这一点?

2 个答案:

答案 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);}

据我所知,您希望在加载完所有内容后显示它们。

相关问题