Javascript jQuery替代绑定(';加载';)以用于图像
可能重复:Javascript jQuery替代绑定(';加载';)以用于图像,javascript,jquery,ajax,deprecated,Javascript,Jquery,Ajax,Deprecated,可能重复: 因此,jQuery中已弃用了.load()方法load()是“绑定('load',函数)”的快捷方式 发件人: 与图像一起使用时加载事件的注意事项 开发人员试图使用.load()解决的一个常见问题 快捷方式是在图像(或 图像)已完全加载。有几个已知的警告 这一点值得注意。这些是: 它不能稳定地工作,也不能跨浏览器可靠地工作 如果图像src设置为与相同的src,则在WebKit中正确激发 在它没有正确冒泡之前,DOM树可以停止运行 对于已存在于浏览器缓存中的图像` 如何在图像加载时始
因此,jQuery中已弃用了
.load()
方法load()
是“绑定('load',函数)”的快捷方式
发件人:
与图像一起使用时加载事件的注意事项
开发人员试图使用.load()解决的一个常见问题
快捷方式是在图像(或
图像)已完全加载。有几个已知的警告
这一点值得注意。这些是:
它不能稳定地工作,也不能跨浏览器可靠地工作
如果图像src设置为与相同的src,则在WebKit中正确激发
在它没有正确冒泡之前,DOM树可以停止运行
对于已存在于浏览器缓存中的图像`
如何在图像加载时始终如一地执行功能?我当前的代码如下所示:
$(newImage).bind('load', function() {
createSlices(slide);
});
然而,在阅读了文档之后(尽管我没有注意到任何问题),我担心它可能不会对某些用户触发
var img = new Image();
img.onload = function() {
}
img.src= src-image
上面的代码适用于所有浏览器,甚至没有jquery。您担心的没错,如果缓存图像,IE7/8有时会无法触发加载事件 一种技术是在绑定加载事件后立即检查映像是否完整:
$(newImage).bind('load error', function() {
createSlices(slide);
});
// check if the image is immediately complete (cached)
if (newImage.complete || typeof newImage.complete === 'undefined') {
createSlices(slide);
}
我在以下方面进行了成功的测试:
- IE 7/8/9/10
- FF4+
- Chrome(最新版本)
- 狩猎5+
waitforimages
插件:(向下滚动链接,您将看到各种高级用法)-演示
希望它符合需要:)
代码
$('selector').waitForImages(function() {
// All descendant images have loaded, now slide up.
$(this).slideUp();
});
有一个很好的库可以准确地处理这一点:
我在生产中使用过,效果非常好。非常可靠,没有一个投诉 根据我的经验,本机的
onload
函数比jQuery的load()
?@Andrew更可靠,谢谢你的格式化。这段代码仍然会遇到jQuery文档中概述的潜在问题。问题是如何解决这些问题,而不是如何预加载图像。nativeonload
适用于包括IE6在内的所有浏览器。