1

这三个事件有什么不同?

哪一个在其他之前/之后加载?

   <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开火,一个最后开火。

ps 我已经阅读了window.onload 与 <body onload=""/>window.onload 与 document.onload以及其他一些内容。

4

1 回答 1

8

它们完全相同,实际上传递给的参数$(...)并不重要。


jQuery 文档中关于.ready

.ready(处理程序)

handler - 在 DOM 准备好后执行的函数。

以下所有三种语法都是等效的:

  • $(document).ready(handler)
  • $().ready(handler)(不建议这样做)
  • $(handler)

.ready()方法只能在匹配当前文档的 jQuery 对象上调用,因此可以省略选择器。

正如所见,参数(选择器$()被明确地称为可选(当做时$(...).ready),因此我们可以安全地假设它与最终结果无关。

于 2012-07-17T20:02:07.153 回答