【发布时间】:2020-06-05 23:35:08
【问题描述】:
我的网站上有以下代码:
backgroundImages[bg_img_path_b]=new Image();
backgroundImages[bg_img_path_b].src = bg_img_path_b;
backgroundImages[bg_img_path_b].loaded="loading";
//jQuery(backgroundImages[lastImage]).unbind('load.backgroundImages');
jQuery(backgroundImages[bg_img_path_b]).bind('load.backgroundImages',function(){
if(typeof callback=='function'){
callback.call(this, bg_img_path_b);
if(showLoading) hideLoadingDC();
}
}).bind('load.cache', function(){
backgroundImages[bg_img_path_b].loaded="true";
});;
有用作页面包装器背景图像的大型图库。由于速度原因,我需要预加载图像(图像非常大)。所以我有了这段代码(实际上只是更大功能的一部分,它包装了缓存等,但是当图像不在缓存中时会触发这几行)。
backgroundImages是Image对象的大数组,key是path就是图片的路径。每个 Image 对象都有我的属性“已加载”,它表示图像是否已经加载,或者当前处于加载状态。
从我的代码中可以看出,我在加载图像时调用回调函数(背景发生变化等)
但是我有一个问题,IE
我真的不知道哪里可能出错,在除旧版 IE 之外的所有浏览器中都可以正常工作..
实际上我需要调试事件是否正确绑定,但是在调试器的加载项下我在IE和Chrome中都看不到它:(
请帮助我完全搞砸了,真的不知道该怎么办。
【问题讨论】:
-
旧版 IE 和 Opera(如果我没记错的话)已知不会在从浏览器缓存加载图像时触发
onload。这可以解释你“第一次,工作,从那时起,不工作”的经历。 -
其实我表达错了..我的意思是在第二次调用函数时..无论图像是否在缓存中..
标签: javascript jquery onload jquery-events