日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

jQuery的$(document).ready()和JavaScript onload事件

發布時間:2025/3/15 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jQuery的$(document).ready()和JavaScript onload事件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

對元素的操作和事件的綁定需要等待一個合適的時機,可以看下面的例子:

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

如果這樣,還沒有等待元素加載完就綁定事件,瀏覽器Console中會報錯:

TypeError: document.getElementById(...) is null ?更改一下時機,下面三個程序都是可以成功綁定事件的,點擊元素之后會彈出相應的alert(). 第一種是把事件綁定放在body里,元素之后: <!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("元素已經加載完畢 !");}/*正確執行*/ </script> </body> </html>

第二種是放在window.onload中進行事件綁定:

<!DOCTYPE html> <meta charset="utf-8"> <html><head><title>1-3</title><script type="text/javascript">window.onload = function () {document.getElementById("panel").onclick = function () {alert("元素已經加載完畢 !");}}</script> </head><body> <div id="panel">click me.</div> </body></html>

第三種是jQueryready()方法傳入綁定事件的方法:

<!DOCTYPE html> <meta charset="utf-8"> <html> <head><title>Panel</title><script src="jquery-1.11.2.js" type="text/javascript"></script><script type="text/javascript">$(document).ready(function () {document.getElementById("panel").onclick = function () {alert("元素已經加載完畢 !");}})</script> </head> <body><div id="panel">click me.</div> </body> </html>

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

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

這個方法接收一個function類型的參數ready(handler), 方法的作用是: Specify a function to execute when the DOM is fully loaded.

即當DOM加載完畢的時候,執行這個指定的方法。 因為只有document的狀態ready之后,對page的操作才是安全的. $(document).ready()僅在DOM準備好的時候執行一次. 與之相比,load事件會等到頁面渲染完成執行,即等到所有的資源(比如圖片)都完全加載完成的時候. $(window).load(function(){…})會等整個頁面,不僅僅是DOM,還包括圖像iframes都準備好之后,再執行. ready()是在DOM準備好之后就執行了,即DOM樹建立完成的時候.所以通常ready()是一個更好的時機. ? 如果DOM初始化完成之后再調用ready()方法,傳入的新的handler將會立即執行. 注意:ready()方法多次調用,傳入的handler方法會串聯執行(追加). 而JavaScript中,window.onload是賦值一個方法,即后面的會覆蓋掉前面的.

$(document).ready()的三種簡寫

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

window對象和document對象

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

Event對象

Event即事件,代表了各種狀態:http://www.w3school.com.cn/jsref/dom_obj_event.asp 事件句柄使我們可以在事件發生的時候附加一些操作和處理,比如按鈕點擊事件發生的時候,進行什么什么操作. 上面的參考鏈接中含有一個屬性列表,對應各種事件,可以利用這些屬性定義事件的行為. 本文關注的onload就是其中一個事件.

onload事件

onload事件:?http://www.w3school.com.cn/jsref/event_onload.asp onload事件是在加載完成后立即發生.(注意其中的l是小寫). 支持該事件的標簽是:<body>, <frame>, <frameset>, <iframe>, <img>, <link>, <script> 支持該事件的JavaScript對象是:image, layer, window.注意這里并沒有document.

onload使用解析

最常用的就是window.onload, 會等到整個頁面及各種資源都加載完成之后再執行后面賦值的function行為. 另外,可以在標簽中使用onload,比如: <body onload="inlineBodyOnloadTimeCounter();"> 其中inlineBodyOnloadTimeCounter()是一個自定義的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 οnlοad=“”>是不兼容的.

總結

以上是生活随笔為你收集整理的jQuery的$(document).ready()和JavaScript onload事件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。