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