IE9问题jQuery load()事件没有触发

m90*_*m90 10 jquery internet-explorer-9

我正在尝试预加载几个图像,并希望我的页面保持不变,直到所有图像都加载完毕.所以我在做的是:

var numPics = $('#bg img').length;
var picsLoaded = 0;
$('#bg img').load(function(){
    picsLoaded++;
    if (picsLoaded == numPics){
        buildPage();
    }

});
Run Code Online (Sandbox Code Playgroud)

除了(你猜对了)IE之外,这在所有浏览器中都能正常工作.不知何故,Internet Explorer将下载所有图片(我可以看到它们被加载到开发工具中),但只会随机启动load-Event(每次刷新都会给我一个新的数字,通常它会计入大约一半的我尝试了不同版本的jQuery(我最初从1.6.1开始)并且在这个网站上也读过这样的问题,但还没找到任何答案.

此外,它似乎不是缓存相关的问题,因为破坏它(或将随机查询字符串附加到图像源)没有任何区别.

Sha*_*ard 16

尝试重新分配图像源以触发事件:

var numPics = $('#bg img').length;
var picsLoaded = 0;
$('#bg img').each(function(index) {
    var img = $(this);
    img.load(function(){
        picsLoaded++;
        if (picsLoaded == numPics){
            buildPage();
        }
    });
    img.attr("src", img.attr("src"));
});
Run Code Online (Sandbox Code Playgroud)