这三个事件之间有什么不同?
哪一个在其他人之前/之后加载?
<body>
<script type='text/javascript'>
$(document).ready(function(){
console.log('Document %s',+new Date());
});
$('body').ready(function(){
console.log('Body %s',+new Date());
});
$(window).ready(function(){
console.log('Window %s',+new Date());
});
</script>
<div>hello world</div>
</body>
奇怪的是,它们按照我将它们放在代码上的顺序触发。对于当前的例子。 document
首先开火,windows
最后开火。
P.S。我看过window.onload vs <body onload=""/>, window.onload vs document.onload和其他几个人。
答案 0 :(得分:7)
它们完全相同,实际上传递给$(...)
的参数并不重要。
来自 jQuery documentation about .ready
:
.ready(处理程序)
handler - 在DOM准备好后执行的函数。
以下所有三种语法都是等效的:
$(document).ready(handler)
$().ready(handler)
(不建议这样做)$(handler)
.ready()
方法只能在匹配的jQuery对象上调用 当前文档,因此可以省略选择器。
正如所见( selector )到$()
被明确地说是可选的(当做$(...).ready
时),因此我们可以安全地假设它与...无关最终的结果。