我正在尝试预加载几张图像,并希望我的页面保持到所有的图像加载.所以我在做什么是这样的:
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")); });