图像预加载器不在IE中工作

时间:2011-08-04 08:43:11

标签: javascript jquery

我有以下代码来预加载图片:

preloader : function(images) {
        var imgCount = images.length;
        var counter = 0;
        $.each(images, function(i, n) {
            alert('hi');
           // load each image
           $("<img />").attr("src", n).load(function() {
               counter++;
               if(imgCount == counter) {
                   $('#loader').hide();
                   $('#wheel').show();
               }
           });
        });
    }

我这样打电话:

preloader(['../images/image1.png','../images/image2.png','../images/image3.png']);

它在Firefox中工作正常,但在IE中它不起作用。我收到所有3个警报,所以每个循环运行,但它只加载第一个图像。如果我只输出数组中的一个图像,我会进入最后的if语句并显示和隐藏div。但是不止一个图像就会出现。正如我所说,这在FF中运行良好,因此对于图像或图像丢失等路径不是问题。

有什么想法吗?我真的很难过。

2 个答案:

答案 0 :(得分:1)

有相同问题的人详细解释:

http://www.mattfarina.com/2007/02/01/preloading_images_with_jquery

您需要延长img元素的生命周期,直到图像实际加载为止。

答案 1 :(得分:1)

我一直使用这个梦幻般的插件:http://flesler.blogspot.com/2008/01/jquerypreload.html

$.preload([ 'red', 'blue', 'yellow' ], {
    base:'images/colors/',
    ext:'.jpg'
});

除了编码良好的事实之外,还存在预装图像的问题,即此插件处理的问题。

相关问题