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.οnlοad=jsFunction1;
?
??????????? //js中window對象的onload屬性執行jsFunction2函數
??????????? window.οnlοad=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>