.load()没有为所有图像触发

时间:2010-10-08 08:23:30

标签: javascript

我创建了一个图库脚本,它首先加载要显示的图像 http://bit.ly/9aQdr3

有36张图片但image.load()只发射了27次。这是代码

    var c = 0;
    for(var i =1; i <= 36; i++){
        var img = '<img width="500" src="images/' + i + '.jpg" />'
        $('#gallery .images').append(img);
    }

    $('#gallery .images img').css({display: 'block', position: 'absolute', left: '0px', top: '0px'});
    $('#gallery .images img').hide();
    totalImages = $('#gallery .images img').size();
    $('#gallery .images img').load(function(){          
        c++;
        var ip = parseInt((c/totalImages)*100);                     
        $('#gallery .images p').text('Loading ... ' + ip + '%');            
        if(c == totalImages){               
            $('#gallery .images p').remove();
            $('#gallery .images img').eq(0).show();
            interval = setInterval(startAnimation, 100);
            isPlaying = true;
        }
    });

1 个答案:

答案 0 :(得分:0)

问题似乎在这里

if(c == totalImages){
    $('#movieShow .images p').remove();
    $('#movieShow .images img').eq(0).show();
    interval = setInterval('startAnimation()', 100);
    isPlaying = true;
}

尝试在firebug控制台c和totalImages上打印,也许你对c变量的增量有问题,或者totalimages不是预期值。

注意:而不是

interval = setInterval('startAnimation()', 100);

请使用

interval = setInterval(startAnimation, 100);

因此您可以使用昂贵的eval()

来避免范围解析