window.onload = function(){ alert("welcome"); }
這樣的寫法作用是希望在頁面加載完,自動執行定義js代碼(function)。
$(document).ready(function(){.... })這個函數是用來取代頁面中的window.onload;
document.ready()和傳統的方法<body onload=”load()”> 相似,不同的是onload()的方法是在頁面加載完成後才發生,這包括DOM元素和其他頁面元素(例如圖片)的加載,因此,使用document.ready()方法的執行速度比onload()的方法要快。
Javascript 只有在DOM元素已經定義以後才可以對其執行某種操作,jQuery使用document.ready來保證所要執行的代碼是在DOM元素被加載完成的情況下執行。
比如:
. 代碼如下:
<script type="text/javascript">
$(document).ready(function () {
alert("我的第一個jQuery代碼!");
});
</script>
這段代碼的意思是:當Dom Tree加載完成後,顯示警告信息。document.ready()和傳統的方法<body onload=”load()”> 相似,不同的是onload()的方法是在頁面加載完成後才發生,這包括DOM元素和其他頁面元素(例如圖片)的加載,因此,使用document.ready()方法的執行速度比onload()的方法要快。
最後要注意兩點:
確保在 <body> 元素的onload事件中沒有注冊函數,否則可能不會觸發$(document).ready()事件。(
我嘗試用下面的例子來演示這個情況,但是沒有成功,所以我想這種情況只是可能發生。)
. 代碼如下:
<html>
<head>
<title>My second jQuery</title>
<script type="text/javascript" src="/js/jquery.js"></script>
<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>");
});
</script>
</head>
<body onload="load()">
<h2>jQuery 簡單例子2</h2>
<p>I would like to say: </p>
</body>
</html>
可以在同一個頁面中無限次地使用$(document).ready()事件。其中注冊的函數會按照(代碼中的)先後順序依次執行。