Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQuery$function()触发什么事件?_Javascript_Jquery_Function - Fatal编程技术网

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

Javascript JQuery$function()触发什么事件?,javascript,jquery,function,Javascript,Jquery,Function,我们有一个JQuery$(function()语句,如下所示: <script type="text/javascript"> $(function(){ //Code.. }) </script> 当文档完成加载时。这与编写以下内容相同: $(document).ready(function(){}); 编辑:回答第二个问题: 如果您不将代码包装在上面的块中,那么它将在遇到代码时立即触发,而不是在页面上的所有控件加载后触发。因此,如果块位于页面顶部,并且它引用了

我们有一个JQuery
$(function()
语句,如下所示:

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

当文档完成加载时。这与编写以下内容相同:

$(document).ready(function(){});
编辑:回答第二个问题:

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


但是如果你在块中换行,你就知道页面已经加载,所有元素现在都可以引用了。

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


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

一旦解析DOM,如果有多个外观,则按外观顺序调用。但此时,文档不显示,只是解析了它。

它在文档完全加载、DOM树初始化、所有CSS样式应用和所有Javascript执行后激发。它不同于
load
事件,即从其他URL(如图像或flash文件)加载内容的元素(CSS/JS除外)此时不一定完成加载。这通常称为“domready”或“domloaded”事件,一些现代浏览器直接支持它(例如Firefox有一个DomContentLoaded事件),而在其他情况下,它可以通过各种技巧进行模拟,例如使用
延迟属性或将脚本放在正文的最末端


其优点是,此时您可以可靠地与文档交互;例如,您可以在具有特定ID的元素上设置事件处理程序,并确保它已存在于DOM树中。另一方面,如果某些外部资源加载缓慢,则它可以比加载事件运行得更早。如果您的脚本处于在HTML代码结束时,使用或不使用domready事件可能没有什么区别,但通常从
head
标记调用脚本,此时还没有正文元素可用。

实际上,这是在加载整个文档之前发生的;这正是DOM准备就绪的时候。@Votey你说得对。I应该更清楚。在大多数情况下,这通常不是一个问题,但有时这是一个重要的区别。我不确定正在解析但未显示的文档是否正确。我认为浏览器通常在解析时显示元素。我错了吗?@patrick dw:你错了。另外,你可以阅读并从
$中操作样式和位置数据。ready
;此时浏览器已经计算了页面的布局。此时可能会绘制UI,也可能不会绘制UI,这取决于浏览器。可以肯定的是,DOM已完全构建,但窗口加载事件尚未触发,因为浏览器仍在运行l下载外部资源(如图像)。在大多数浏览器中,UI可以很好地绘制。考虑脚本元素,我们放置在文档的底部,这样它们就不会停止渲染之前的元素。脚本完成后,任何元素将在脚本执行完毕后被解析,但是EELM。直到那一点之前的ents都应该呈现出来。@patrick,@Nrj.@Andy E-这就是为什么我对这个答案中的陈述感到好奇。正如你所指出的,将脚本放在文档末尾的全部目的(但通常仍然在
中)这是javascript阻止渲染的一个补救措施。如果在加载整个文档之前都没有显示,这将不会是一个很大的修复。注意:o)我不认为每次都会触发,除非关闭括号。jQuery并没有消除对正确语法的需要!
$(document).ready(function(){});