JQuery $ function()会触发什么事件?

Mar*_*eon 41 javascript jquery function

我们有一个JQuery $(function()语句:

<script type="text/javascript">
$(function(){
  //Code..
})
</script>
Run Code Online (Sandbox Code Playgroud)

愚蠢的问题 - 什么时候执行此功能?是在客户端下载整个HTML页面的时候吗?

使用包装代码的好处是什么$(function(),而不仅仅是:

<script type="text/javascript">
//Code..
</script>
Run Code Online (Sandbox Code Playgroud)

And*_*y E 31

它在解析文档并准备就绪时触发,相当于$(document).ready(function () { }).

显而易见的好处是,在页面上的其他元素之前使用脚本标记意味着您的脚本可以与它们进行交互,即使它们在解析时不可用.如果在解析元素并且文档未准备好之前运行脚本,则它们将无法进行交互.


Nrj*_*Nrj 19

它在解析DOM时立即执行,如果有多个外观则按外观顺序调用.此时,文档不会显示,只是解析它.

  • 此时可能会或可能不会绘制UI - 这取决于浏览器.所有你可以肯定的是,DOM是完全构建的,但窗口OnLoad事件尚未触发,因为浏览器仍在下载外部资源,如图像. (2认同)

spi*_*non 5

文档完成加载时.这和写这个是一样的:

$(document).ready(function(){});
Run Code Online (Sandbox Code Playgroud)

编辑:回答你的第二个问题:

如果你没有将你的代码包装在上面的块中,那么它会在遇到它时立即触发,而不是在页面上的所有控件都已加载之后触发.因此,如果一个块位于页面的顶部并且它引用了页面中的元素,那么这些引用将无法工作,因为尚未加载元素.

但是如果你在块中包装,那么你就知道页面已经加载了,所有元素现在都可用于引用.

  • 它实际上发生在**整个文档加载之前**; 就在DOM准备好的时候. (7认同)