document.ready()的用法

1.Jquery是優秀的Javascrīpt框架,$是jquery庫的申明,它很不穩定(我就常趕上),換一種穩定的寫法jQuery.noConflict(); jQuery(document).ready(function(){});

使用jQuery的好處是它包裝了各類瀏覽器版本對DOM對象(javascript的DOM對象你應該知道吧,就是它了)的操做.

好比jquery寫法:javascript

$("div p"); // (1)
$("div.container"); // (2)
$("div #msg"); // (3)
$("table a",context); // (4)
$("#myId"); //(5)

第一行代碼獲得全部<div>標籤下的<p>元素。第二行代碼獲得class 爲container的<div>元素,第三行代碼獲得<div>標籤下面id爲msg的元素。第四行代碼獲得context爲 上下文的table裏面全部的鏈接元素。第五行代碼獲得id爲myid的全部元素

若是你熟悉CSS,你會以爲這些寫法很眼熟!對了。正是。看出奧妙了吧。jquery就是經過這樣的方式來找到Dom對象裏面的元素。跟CSS的選擇器相相似。

如今回答你的具體問題吧html

$(document).ready(function(){
alert("hello");
});(1)
<body onload="alert('hello');">(2)

上面兩段代碼是等價的。但代碼1的好處是作到表現和邏輯分離。而且能夠在不一樣的js文件中作相同的操做,即$(document).ready (fn)能夠在一個頁面中重複出現,而不會衝突。基本上Jquery的不少plugin都是利用這個特性,正由於這個特性,多個plugin共同使用起 來,在初始化時不會發生衝突。

若是咱們在java

$(document).ready(function(){
加入的內容
});

加入內容jquery

$(".btn-slide").click(function(){
          alert("你單擊了a標籤中class等於btn-slide的鏈接");
});

則表示當咱們單擊class=btn-slide的超級鏈接時彈出「你單擊了a標籤中class等於btn-slide的鏈接」對話框.

如此方便易用,所以使用jquery是一個不錯的選擇。




2.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()的方法要快。





3.注意:
最後要注意兩點:

確保在 <body> 元素的onload事件中沒有註冊函數,不然可能不會觸發$(document).ready()事件。(
我嘗試用下面的例子來演示這個狀況,可是沒有成功,因此我想這種狀況只是可能發生。)


複製代碼 代碼以下:app

<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()事件。其中註冊的函數會按照(代碼中的)前後順序依次執行。框架

相關文章
相關標籤/搜索