最近我看到你可以使用
$('document').ready(function() {
//Do Code
});
或
$('window').load(function() {
//Do Code
});
用于jQuery。
然而,它们对我来说似乎是一样的!但显然不是。
所以我的问题是:我应该使用哪一个基于动画和异步的网站?而且两者中哪一个通常更好用?
感谢。
答案 0 :(得分:31)
$('document').ready
在DOM准备就绪时运行代码,但在页面本身已加载时运行代码,也就是说,网站尚未绘制,并且尚未加载图像等内容
$(window).load
在页面已绘制且所有内容均已加载时运行代码。当您需要获取图像的大小时,这可能会有所帮助。如果图像没有样式或宽度/高度,除非使用$(window).load
,否则无法获得其大小。
答案 1 :(得分:7)
首先,您可能需要考虑使用“就绪”事件,您可以像这样处理:
$().ready(function() {
...
});
或者,更简洁和惯用:
$(function() {
...
});
“load”处理程序确实与实际事件有关,可以在几种不同类型的元素上处理:例如<img>
和<iframe>
。文档或窗口级别的“加载”事件在加载所有页面资源时发生。 (在某些浏览器中合成)“就绪”事件会在页面DOM准备就绪时发生,但可能在<img>
内容之前发生。
另一个选择是简单地将<script>
标记放在<body>
的最后或甚至<body>
之后。这样脚本就可以使用整个DOM了,但是你不必担心任何类型的事件处理。