在js和jquery使用中,經常使用到頁面載入完成後執行某一方法。通過整理,大概是五種方式(其中有的只是書寫方式不一樣)。 1:使用jQuery的$(function){}; 2:使用jquery的$(document).ready(function(){}); 前兩者本質上沒有區別,第1種是第2種 ...
在js和jquery使用中,經常使用到頁面載入完成後執行某一方法。通過整理,大概是五種方式(其中有的只是書寫方式不一樣)。
1:使用jQuery的$(function){};
2:使用jquery的$(document).ready(function(){});
前兩者本質上沒有區別,第1種是第2種的簡寫方式。兩個是document載入完成後就執行方法。
3:使用jQuery的$(window).load(function(){});
4:使用window.onload = function(){}
第3種和第4種都是等到整個window載入完成執行方法體。兩者也沒有區別,只是一個使用dom對象,一個使用jQuery對象。
5:在標簽上靜態綁定onload事件,<body onload="aaa()">等待body載入完成,就會執行aaa()方法。
那麼,這五種方式,執行的先後順序是怎麼樣的呢?
通過下方代碼驗證發現:
- 使用第一種 jQuery的$(function){} 和第二種 jquery的$(document).ready(function(){});無論位置放置在哪裡,總是優先其餘三種方式(原因是:這兩種方式是在document載入完成後就執行,後三種是等到整個window頁面載入完成後才執行),這兩者之間的執行順序是誰在上方誰優先執行。
- 使用第三種 jQuery的$(window).load(function(){});和第四種 window.onload = function bbb(){}這兩種方式,總是優先於<body onload="aaa()">執行。他們兩者執行順序也是根據誰在上方誰先執行。
- 使用第五種 <body onload="aaa()">總是最後執行。
<script type='text/javascript'> window.onload = function(){ alert("頁面載入完成====》onload"); } $(window).load(function(){ alert("jquery===》window load" ); }) $(document).ready(function () { alert("jquery====》document ready"); }); $(function(){ alert("jquery====》document onload"); }); function aaa(){ alert("靜態標簽====》onload"); } </script> <body onload="aaa()"></body>