我使用$(window).load(function(){});
为我的项目,直到某个地方,我看到有人说,我们可以只使用$(function(){});
他们会执行相同。
但现在,我有更多的经验,我发现他们是不相同的。 我注意到,第一块,第二块的代码后踢一点点。
我只是想知道有什么区别?
Answer 1:
$(document).ready(function(){})
会等到该文件被加载(DOM树加载),而不是直到加载整个窗口。 例如它不会等待图片,CSS或JavaScript被完全加载。 一旦DOM加载所有的HTML组件和事件处理程序的文件已准备好进行处理,然后$(文件)。就绪()将完成
$(window).load(function(){});
这也是在等待要加载整个窗口。 当整个页面加载则仅$(窗口).load()完成。 因此,很明显的$(document)。就绪(函数(){})结束之前$(窗口).load(),因为填充的组件(如图像,CSS)需要更多的时间,那么只需加载DOM树。
所以$(function(){});
不能被用作一个替代$(window).load(function(){});
Answer 2:
从jQuery的文档本身。
大多数JavaScript程序员最终做的第一件事就是加入一些代码到他们的程序,与此类似:
window.onload = function(){ alert("welcome"); }
内部是要在页面加载时运行右边的代码。 然而,问题的JavaScript代码都不能运行,直到所有图像下载完毕(包括横幅广告)。 其原因首先使用在window.onload是,HTML“文档”还没有完成加载呢,当你第一次尝试运行代码。
为了避免这两个问题,jQuery有一个简单的语句来检查文件和等待,直到它准备好被操纵,被称为ready事件:
$(document).ready(function(){
// Your code here
});
现在,
$(window).load(function(){});
等于window.onload = function(){ alert("welcome"); }
window.onload = function(){ alert("welcome"); }
而且, $(function(){});
是一个快捷方式$(document).ready(function(){ });
我认为,这将清除一切:)
Answer 3:
$(window).load
从我的经验,等到一切,包括图像运行的位置为之前加载$(function() {});
具有相同的行为$(document).ready(function() {});
请人纠正我,如果我错了。
Answer 4:
第二个是/是为一个快捷方式$(document).ready()
其之前应该运行window
的加载事件。
需要注意的是$(document).ready()
是结合东西的首选方式document
负荷; 有做它像一个你表现出一对夫妇的其他方式,但首选。