您的位置:首页 > Web前端 > JQuery

jQuery基础 - document.ready和window.onload的区别

2010-04-12 16:58 585 查看
Javascript 只有在DOM元素已经定义以后才可以对其执行某种操作,这个问题在“javascript执行顺序里”一文里有详细介绍。jQuery使用
document.ready
来保证所要执行的代码是在DOM元素被加载完成的情况下执行。

比如在"jQuery基础 - 如何开始"一文里,我用到如下jQuery代码:

<mce:script type="text/javascript"><!--
$(document).ready(function () {
alert("我的第一个jQuery代码!");
});
// --></mce:script>
[/code]
[/code]
这段代码的意思是:当Dom Tree加载完成后,显示警告信息。
document.ready()
和传统的方法
<body onload=”load()”>
相似,不同的是
onload()
的方法是在页面加载完成后才发生,这包括DOM元素和其他页面元素(例如图片)的加载,因此,使用
document.ready()
方法的执行速度比
onload()
的方法要快。

最后要注意两点(来自jQuery文档):

确保在 <body> 元素的onload事件中没有注册函数,否则可能不会触发$(document).ready()事件。(
我尝试用下面的例子来演示这个情况,但是没有成功,所以我想这种情况只是可能发生。)

<html>
<head>
<title>My second jQuery</title>
<mce:script type="text/javascript" src="/js/jquery.js" mce_src="js/jquery.js"></mce:script>
<mce:script type="text/javascript"><!--
//下面是load的函数含有jquery注册函数$
function load(){
$("p").append("<b>Hello</b>");
}
//下面是jQuery的代码
$(document).ready(function () {
$("p").append("我的第一个jQuery代码!");
$("p").append("<b>Hello</b>");
});
// --></mce:script>
</head>
<body onload="load()">
<h2>jQuery 简单例子2</h2>
<p>I would like to say: </p>
</body>
</html>
[/code]
[/code]

可以在同一个页面中无限次地使用
$(document).ready()
事件。其中注册的函数会按照(代码中的)先后顺序依次执行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: