(document).ready() 和(window).load() 之间的区别
$(window).load()
在 jQuery 版本 1.8 中 被弃用(并且完全从 jQuery 3.0 中 删除 ) ,因此不应该再使用了。关于此事件的 jQuery 页面上注明了弃用的原因
与图像一起使用时加载事件的注意事项
开发人员尝试使用
.load()
快捷方式解决的常见挑战是在图像(或图像集合)完全加载时执行功能。应该注意有几个已知的警告。这些是:
- 它不能一致地工作,也不能可靠地跨浏览器
- 如果图像
src
设置为与之前相同的src
,则在 WebKit 中无法正确触发- 它没有正确地冒泡 DOM 树
- 可以停止为已经存在于浏览器缓存中的图像触发
如果你仍然希望使用 load()
,请记录如下:
$(document).ready()
等待直到完整的 DOM 可用 - HTML 中的所有元素都已经过解析并且在文档中。但是,此时图像等资源可能尚未完全加载。如果等到所有资源都被加载很重要**,那么你知道这个事件的重大限制,**那么可以使用下面的代码:
$(document).ready(function() {
console.log($("#my_large_image").height()); // may be 0 because the image isn't available
});
$(window).load(function() {
console.log($("#my_large_image").height()); // will be correct
});