我在我的项目中使用$(window).load(function(){});
,直到某个地方我看到有人说我们可以使用$(function(){});
并且他们的表现相同。
但是现在我有更多经验,我注意到它们并不相同。我注意到在第二段代码之后,第一件作品开始了一点点
我只是想知道有什么区别?
答案 0 :(得分:10)
$(document).ready(function(){})
将等到文档加载(加载DOM树),直到整个窗口加载为止。例如它不会等待图像,css或javascript完全加载。一旦DOM加载了所有HTML组件和事件处理程序,文档就可以处理了,然后$(document).ready()将完成
$(window).load(function(){});
等待加载整个窗口。加载整个页面时,只完成$(window).load()。因此很明显$(document).ready(function(){})在$(window).load()之前完成,因为填充组件(比如images,css)需要更多的时间才能加载DOM树。
因此$(function(){});
不能用作$(window).load(function(){});
答案 1 :(得分:4)
来自jQuery docs本身。
大多数Javascript程序员最终做的第一件事就是在他们的程序中添加一些代码,类似于:
window.onload = function(){ alert("welcome"); }
其中包含您希望在加载页面时运行的代码。但问题是,在完成所有图像下载(包括横幅广告)之前,Javascript代码不会运行。首先使用window.onload的原因是当你第一次尝试运行你的代码时,HTML'文档'还没有完成加载。
为了避免这两个问题,jQuery有一个简单的语句来检查文档并等待它准备好被操作,称为就绪事件:
$(document).ready(function(){
// Your code here
});
现在,
$(window).load(function(){});
等于window.onload = function(){ alert("welcome"); }
而$(function(){});
是$(document).ready(function(){ });
我认为,这清除了一切:)
答案 2 :(得分:2)
$(window).load
根据我的经验等待,直到所有包含图片的内容都在加载之前运行,因为$(function() {});
具有与$(document).ready(function() {});
相同的行为
如果我错了,请有人纠正我。
答案 3 :(得分:0)
第二个是/ $(document).ready()
的快捷方式,应该在window
的加载事件之前运行。
请注意,$(document).ready()
是将某些内容绑定到document
加载的首选方式;还有其他一些方法可以像你展示的那样,但这是首选。