亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

全面解析jQuery $(document).ready()和JavaScript onload事件

 更新時(shí)間:2016年06月08日 10:09:32   投稿:mrr  
這篇文章主要介紹了全面解析jQuery $(document).ready()和JavaScript onload事件的相關(guān)資料,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下

對(duì)元素的操作和事件的綁定需要等待一個(gè)合適的時(shí)機(jī),可以看下面的例子:

<!DOCTYPE html>
<meta charset="utf-8">
<html>
<head>
<title>1-1</title>
<script type="text/javascript">
document.getElementById("panel").onclick = function () {
alert("元素已經(jīng)加載完畢 !");
}
/*執(zhí)行錯(cuò)誤*/
</script>
</head>
<body>
<div id="panel">click me.</div>
</body>
</html>

如果這樣,還沒(méi)有等待元素加載完就給 div#panel 綁定了一個(gè)事件,瀏覽器Console中會(huì)報(bào)錯(cuò): TypeError:

document.getElementById(...) is null

更改一下時(shí)機(jī),下面三個(gè)程序都是可以成功綁定事件的,點(diǎn)擊元素之后會(huì)彈出相應(yīng)的alert().

把事件綁定放在body里,元素之后:

由于綁定事件在元素之后,所以可以成功獲取 div#panel 的元素,并在 div#panel 上綁定點(diǎn)擊事件。

<!DOCTYPE html>
<meta charset="utf-8">
<html>
<head>
<title>1-2</title>
</head>
<body>
<div id="panel">click me.</div>
<script type="text/javascript">
document.getElementById("panel").onclick = function () {
alert("元素已經(jīng)加載完畢 !");
}
/*正確執(zhí)行*/
</script>
</body>
</html>

把事件綁定放在window.onload中進(jìn)行事件綁定:

window.onload 事件的處理函數(shù)則在頁(yè)面所有元素加載完成之后才執(zhí)行,所以這里給獲取元素并綁定事件也是可行的。

<!DOCTYPE html>
<meta charset="utf-8">
<html>
<head>
<title>1-2</title>
</head>
<body>
<div id="panel">click me.</div>
<script type="text/javascript">
document.getElementById("panel").onclick = function () {
alert("元素已經(jīng)加載完畢 !");
}
/*正確執(zhí)行*/
</script>
</body>
</html>
jQuery的ready()方法傳入綁定事件的方法:
<!DOCTYPE html>
<meta charset="utf-8">
<html>
<head>
<title>1-3</title>
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
<script>
$(document).ready(function(){
document.getElementById("panel").onclick = function () {
alert("元素已經(jīng)加載完畢 !");
}
/*正確執(zhí)行*/
});
</script>
</head>
<body>
<div id="panel">click me.</div>
</body>
</html>

jQuery $(document).ready()和window.onload

根據(jù)ready()方法的API說(shuō)明http://api.jquery.com/ready/。

這個(gè)方法接收一個(gè)function類型的參數(shù)ready(handler), 方法的作用是: Specify a function to execute when the DOM is fully loaded.即當(dāng)DOM加載完畢的時(shí)候,執(zhí)行這個(gè)指定的方法.因?yàn)橹挥衐ocument的狀態(tài)ready之后,對(duì)元素的操作才是安全的. $(document).ready() 僅在DOM準(zhǔn)備好的時(shí)候執(zhí)行一次,但可以多次綁定 ready 事件。

與ready相比,load事件會(huì)等到頁(yè)面渲染完成執(zhí)行,即等到所有的資源(比如圖片)都完全加載完成的時(shí)候才會(huì)執(zhí)行。 $(window).load(function(){…}) 會(huì)等整個(gè)頁(yè)面,不僅僅是DOM,還包括圖像和iframes都準(zhǔn)備好之后,再執(zhí)行.而ready()是在DOM準(zhǔn)備好之后就執(zhí)行了,即DOM樹(shù)建立完成的時(shí)候.所以通常ready()是一個(gè)更好的時(shí)機(jī).

如果DOM初始化完成之后再調(diào)用ready()方法,傳入的新的handler將會(huì)立即執(zhí)行.

注意:ready()方法多次調(diào)用,傳入的handler方法會(huì)串聯(lián)執(zhí)行(追加).而JavaScript中,window.onload是賦值一個(gè)方法,即后面的會(huì)覆蓋掉前面的.

$(document).ready()的三種簡(jiǎn)寫(xiě)

$( document ).ready(handler)
$().ready(handler)//(this is not recommended)
$(handler)

window對(duì)象和document對(duì)象

Window對(duì)象表示瀏覽器中打開(kāi)的窗口: http://www.w3school.com.cn/jsref/dom_obj_window.asp
Document對(duì)象表示載入瀏覽器的HTML文檔: http://www.w3school.com.cn/jsref/dom_obj_document.asp

Event對(duì)象

Event 即事件,代表了各種狀態(tài):http://www.w3school.com.cn/jsref/dom_obj_event.asp

事件句柄使我們可以在事件發(fā)生的時(shí)候附加一些操作和處理,比如按鈕點(diǎn)擊事件發(fā)生的時(shí)候,進(jìn)行什么什么操作.上面的參考鏈接中含有一個(gè)屬性列表,對(duì)應(yīng)各種事件,可以利用這些屬性定義事件的行為.文中關(guān)注的onload就是其中一個(gè)事件.

onload事件

onload 事件: http://www.w3school.com.cn/jsref/event_onload.asp

onload 事件是在加載完成后立即發(fā)生.(注意其中的l是小寫(xiě)).

支持該事件的標(biāo)簽是: <body>, <frame>, <frameset>, <iframe>, <img>, <link>, <script>

支持該事件的JavaScript對(duì)象是: image, layer, window .注意這里并沒(méi)有 document .

onload使用解析

最常用的就是 window.onload , 會(huì)等到整個(gè)頁(yè)面及各種資源都加載完成之后再執(zhí)行后面賦值的 function 行為.另外,可以在標(biāo)簽中使用 onload ,比如:

<body onload="inlineBodyOnloadTimeCounter();">

其中 inlineBodyOnloadTimeCounter() 是一個(gè)自定義的JavaScript function.

注意 jQuery ready() 的API文檔中有這么一段:

The .ready() method is generally incompatible with the attribute. If load must be used, either do not use .ready() or use jQuery's .load() method to attach load event handlers to the window or to more specific items, like images.

注釋: ready() 方法和 <body onload=""> 是不兼容的.

以上所述是小編給大家介紹的全面解析jQuery $(document).ready()和JavaScript onload事件的相關(guān)知識(shí),希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • jQuery控制TR顯示隱藏的三種常用方法

    jQuery控制TR顯示隱藏的三種常用方法

    第一種方法是使用id,第二種方法是使用$.each(),第三種方法是通過(guò)屬性篩選器,還有很多,大家自家挖掘吧
    2014-08-08
  • jQuery圖片播放8款精美插件分享

    jQuery圖片播放8款精美插件分享

    與大家一起分享8款精美的jQuery圖片播放插件,有興趣的朋友可以下載使用和研究;廢話不多說(shuō)了,直接上這些插件,希望這些插件對(duì)你有所幫助
    2013-02-02
  • 基于jQuery的自動(dòng)完成插件

    基于jQuery的自動(dòng)完成插件

    感覺(jué)這個(gè)東西很常用,很多其它js框架里有,但是太大了,用不了太多,自己寫(xiě)了個(gè)。需要的朋友可以參考下。
    2011-02-02
  • 改善用戶體驗(yàn)的五款jQuery插件分享

    改善用戶體驗(yàn)的五款jQuery插件分享

    改善網(wǎng)頁(yè)的用戶體驗(yàn),可以從以下幾個(gè)方面入手:菜單欄,tab,登錄/注冊(cè),搜索,以及404頁(yè)面。對(duì)于每一方面的優(yōu)化,Gevin分別向大家推薦一個(gè)自己私藏的jquery插件,希望對(duì)大家有幫助,也歡迎大家多多交流
    2011-05-05
  • jQuery中extend()和fn.extend()方法詳解

    jQuery中extend()和fn.extend()方法詳解

    jQuery自定義了jQuery.extend()和jQuery.fn.extend()方法.其中jQuery.extend()方法能夠創(chuàng)建全局函數(shù)或者選擇器,而jQuery.fn.extend()方法能夠創(chuàng)建jQuery對(duì)象方法.
    2015-06-06
  • jQuery拖拽div實(shí)現(xiàn)思路

    jQuery拖拽div實(shí)現(xiàn)思路

    jQuery拖拽div,利用jquery的mousemove,mousedown,mouseup三個(gè)事件,需要的朋友可以參考下
    2014-02-02
  • 從零開(kāi)始學(xué)習(xí)jQuery (七) jQuery動(dòng)畫(huà)實(shí)現(xiàn) 讓頁(yè)面動(dòng)起來(lái)

    從零開(kāi)始學(xué)習(xí)jQuery (七) jQuery動(dòng)畫(huà)實(shí)現(xiàn) 讓頁(yè)面動(dòng)起來(lái)

    開(kāi)發(fā)人員一直痛疼做動(dòng)畫(huà). 但是有了jQuery你會(huì)瞬間成為別人(那些不知道jQuery的人)眼里的動(dòng)畫(huà)高手! 本文將介紹jQuery的動(dòng)畫(huà)相關(guān)函數(shù).原來(lái)做動(dòng)畫(huà)如此簡(jiǎn)單!
    2011-02-02
  • jQuery Div中加載其他頁(yè)面的實(shí)現(xiàn)代碼

    jQuery Div中加載其他頁(yè)面的實(shí)現(xiàn)代碼

    在做一個(gè)表單簽核系統(tǒng)時(shí),需在要簽核頁(yè)面中將表單內(nèi)容(事先做好的PHP頁(yè)面)顯示出來(lái),于就是想能不能利用Ajax技術(shù)把這個(gè)事先做好的頁(yè)面嵌入到簽核頁(yè)面中呢?
    2009-02-02
  • jquery垂直公告滾動(dòng)實(shí)現(xiàn)代碼

    jquery垂直公告滾動(dòng)實(shí)現(xiàn)代碼

    公告滾動(dòng)想必大家都有見(jiàn)到過(guò)吧,實(shí)現(xiàn)方法也有很多,下面為大家介紹使用jquery實(shí)現(xiàn)垂直公告滾動(dòng),感興趣的朋友不要錯(cuò)過(guò)
    2013-12-12
  • jQuery中filter()和find()的區(qū)別深入了解

    jQuery中filter()和find()的區(qū)別深入了解

    一直不是很清楚filter()方法和find()方法的區(qū)別,看jQuery Cookbook一書(shū)后,終于算是搞清楚了,下面將新的與大家分享下
    2013-09-09

最新評(píng)論