gpt4 book ai didi

javascript - 在 jQuery 中的图像对象上绑定(bind) onload 事件

转载 作者:行者123 更新时间:2023-11-29 10:23:42 26 4
gpt4 key购买 nike

我的网站上有以下代码:

 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 对象都有我的属性“loaded”,它表示图像是否已经加载,或者当前处于加载状态。

正如您从我的代码中看到的,我在加载图像时调用回调函数(背景发生变化等)

但是我在 I.E<9 上遇到了问题,回调没有成功启动(但不是每次都启动)。当我第一次加载我的页面时它加载正确,但任何时候我再次调用这个函数时,它都会正确加载通过没有错误,但没有触发加载事件..

我真的不知道哪里可能出错,在除旧版 IE 之外的所有浏览器中它都可以正常工作..

实际上我需要调试事件是否正确绑定(bind),但在调试器的加载项下我无法在 IE 和 Chrome 中看到它:(

请帮帮我,我完全搞砸了,真的不知道该怎么办。

最佳答案

所以几天前我终于找到了解决我的问题的方法..如果我先绑定(bind)onload事件然后设置Image的url,或者先设置url然后绑定(bind)事件,这似乎很重要。 .示例

var photo = new Image();
photo.url = "http://www.something.com/something.jpg";
$(photo).bind('load',doSomething());


var photo = new Image();
$(photo).bind('load',doSomething());
photo.url = "http://www.something.com/something.jpg";

第一个变体通常运行正常,但有时会失败(在较旧的 IE 中)..但第二个变体肯定能正常工作..

关于javascript - 在 jQuery 中的图像对象上绑定(bind) onload 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6370179/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com