当前位置: 秋叶网络博客 网页特效 ◊ Jq加载顺序之$(document).ready用法

Jq加载顺序之$(document).ready用法

作者:秋了秋 发表时间:2015年03月31日

我们经常用js做网页特效,或者用js增添一些功能,那么你有没有遇到过在js正确的情况下实现不了它所应有的效果呢?对于经常折腾网页代码的人来说,是一定会有这种经验的,js代码没有错误,但是却不执行。因为我们忽略了网页在浏览器加载是有顺序规则的,包括html,css,js以及三者混合页面。前面写过一篇文章《网页代码布局必须遵循不严格顺序》,有兴趣的可以看看,今天着重说说$(document).ready(function(){})的用法,在jq中这一句等同于jquery(document).ready(function(){})也等同于$(function(){})。

举个例子:有时候我们在js文件中直接用

function juli(){
var tags = $("#footer");....//功能函数
}
juli();

写功能函数,然后我们在网页头部加载这个js文件,就会出现效果不出来的现象,原因在于当浏览器加载这个js文件的内容的时候,#footer这个id在网页后面,还在就绪阶段,还没加载也即不存在#footer,当这个js读不到这个id的时候自然就不能成功给#footer添加功能。

而解决办法除了把这个js放在网页最后加载之外,还有一个办法就是通过$(document).ready(function(){})包住,这样就可以解决加载顺序造成的错误。如:

$(document).ready(function(){
function juli(){
var tags = $("#footer");....//功能函数
}
juli();
});

因为$(document).ready(function(){})里面的内容是规定在DOM(网页文档)加载完成之后网页内容加载之前再执行的,也许很难理解,可以理解成html加载完成之后,图片加载之前。当所有id都加载完成之后再去查找#footer这样就能找到了,既可以完成js的功能实现。

阅读延伸:

跟$(document).ready(function(){})类似的还有原生js的windows.onload(),如:

window.onload=function(){
alert("秋叶您好!");
}

window.onload()与$(document).ready(function(){})类似但又不同,window.onload()是在页面所有元素(包括图片,引用文件)加载完后才执行,既整个页面所有东西都加载完成后再加载。

跟window.onload()和$(document).ready(function(){})类似还有body.onload,这个加载顺序等同于windows.onload,只不过这个写在html的body标签上。如:

<BODY onload="alert('body onload');alert(document.getElementById('testdiv').innerText)" onclick="alert('秋叶网络博客');">
0
除非注明,文章均由 秋叶网络博客 发布,欢迎转载。
转载请注明本文地址:http://www.mizuiren.com/314.html
目录: 网页特效 | 标签: js, 异步加载 | 15220次阅读