(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
});