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

前端之家收集整理的这篇文章主要介绍了IE9问题与jQuery load()事件没有触发前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试预加载几张图像,并希望我的页面保持到所有的图像加载.所以我在做什么是这样的:
var numPics = $('#bg img').length;
var picsLoaded = 0;
$('#bg img').load(function(){
    picsLoaded++;
    if (picsLoaded == numPics){
        buildPage();
    }

});

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

此外,它似乎不像缓存相关的问题,因为破坏它(或附加一个随机查询字符串到图像源)并没有什么不同.

解决方法

尝试重新分配图像源以触发事件:
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"));
});

猜你在找的jQuery相关文章