JQuery的ready函数与JS的onload的区别:
1.执行时间
window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行。
$(document).ready()是DOM结构绘制完毕后就执行,不必等到加载完毕。
2.编写个数不同
window.onload不能同时编写多个,如果有多个window.onload方法,只会执行一个
$(document).ready()可以同时编写多个,并且都可以得到执行
3.简化写法
window.onload没有简化写法
$(document).ready(function(){})可以简写成$(function(){});
在我以前的开发中,一般用到javascript,我都是采用jquery的模式,也就是大多数时候,第一行写的是:
$(document).ready(function(){
…
});
这个时候,不一定要等所有的js和图片加载完毕,就可以执行一些方法,不过有些时候,必须要等所有的
元素都加载完毕,才可以执行一些方法的时候,比如说,部分图片或者什么其他方面还没有加载好,这个时候,点击某些按钮,会导致出现意外的情况,这个时候,就
需要用到:
$(window).load(function() {
…
});
eg:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ready和js中的onload的区别</title>
<script type="text/javascript" src="jquery-core/jquery-1.8.0.js"></script>
<script type="text/javascript">
//js中window对象的onload属性执行jsFunction1函数
window.onload=jsFunction1;
//js中window对象的onload属性执行jsFunction2函数
window.onload=jsFunction2;
//jquery的ready方法执行jqFunction1函数
$(document).ready(jqFunction1);
//jquery的ready方法执行jqFunction2函数
$(document).ready(jqFunction2);
//jsFunction1函数
function jsFunction1(){
alert("jsFunction1");
}
//jsFunction2函数
function jsFunction2(){
alert("jsFunction2");
}
//jqFunction1函数
function jqFunction1(){
alert("jqFunction1");
}
//jqFunction2函数
function jqFunction2(){
alert("jqFunction2");
}
</script>
</head>
<body>
<h1>ready和js中的onload的区别</h1>
</body>
</html>