亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > JavaScript > 正文

JQuery中DOM加載與事件執行實例分析

2024-05-06 16:22:24
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了JQuery中DOM加載與事件執行,實例分析了jQuery中DOM加載及事件執行的原理與實現方法,并補充說明了windows.onload方法和$(document).ready()方法的區別,需要的朋友可以參考下

本文實例講述了JQuery中DOM加載與事件執行原理。分享給大家供大家參考。具體分析如下:

JavaScript和HTML之間的交互是通過用戶和瀏覽器操作頁面時引發的事件來處理的。當文檔或者它的某些元素發生某些變化或操作時,瀏覽器會自動生成一個事件。例如當瀏覽器裝載完一個文檔后,會生成事件:當用戶單擊某個按鈕時,也會生成事件。雖然利用傳統的JavaScript事件能完成這些交互,但jQuery增加并擴展了基本的事件處理機制。jQuery不僅提供了更加優雅的事件處理語法,而且極大地增強了事件處理能力。

以瀏覽器裝載文檔為例,在頁面加載完畢后,瀏覽器會通過JavaScript為DOM元素添加事件。在常規的JavaScript代碼中,通常使用window.onload方法,而在jQuery中,使用的是$(document).ready()方法。$(document).ready()方法是事件模塊中最重要的一個函數,可以極大地提高Web應用程序的響應速度。jQuery就是用$(document).ready()方法來代替傳統JavaScript的window.onload方法的。通過使用該方法,可以在DOM載入就緒時就對其進行操縱并調用執行它所綁定的函數。在使用過程中,需要注意$(document).ready()方法和window.onload方法之間的細微區別。

執行時機

$(document).ready()方法和window.onload方法有相似的功能,但是在執行時機方面是有區別的。window.onload方法是在網頁中所有的元素(包括元素的所有關聯文件)完全加載到瀏覽器后才執行,即JavaScript此時才可以訪問網頁中的任何元素。而通過jQuery中的$(document).ready()方法注冊的事件處理程序,在DOM完全就緒時就可以被調用。此時,網頁的所有元素對jQuery而言都是可以訪問的,但是,這并不意味著這些元素關聯的文件都已經下載完畢。

舉一個例子,有一個大型的圖庫網站,為網頁中所有圖片添加某些行為,例如單擊圖片后讓它隱藏或顯示。如果使用window.onload方法來處理,那么用戶必須等劍每一幅圖片都加載完畢后,才可以進行操作。如果使用jQuery中的$(document).ready()方法來進行設置,只要DOM就緒就可以操作了,不需要等待所有圖片下載完畢。很顯然,把網頁解析為DOM樹的速度比把頁面中的所有關聯文件加載完畢的速度快很多。

另外,需要注意一點,由于在$(document).ready()方法內注冊的事件,只要DOM就緒就會被執行,因此可能此時元素的關聯文件末下載完。例如與圖片有關的HTML下載完畢,并且已經解析為DOM樹了,但很有可能圖片還未加載完畢,所以例如圖片的高度和寬度這樣的屬性此時不一定有效。要解決這個問題,可以使用jQuery中另一個關于頁面加載的方法——load()方法。load()方法會在元素的onload事件中綁定一個處理函數。如果處理函數綁定給window對象,則會在所有內容(包括窗口、框架、對象和圖像等)加載完畢后觸發,如果處理函數綁定在元素上,則會在元素的內容加載完畢后觸發。jQuery代碼如下:

 

 
  1. $(window).load(function(){  
  2. // 編寫代碼  
  3. }) 

等價于JavaScript中的以下代碼:

 

 
  1. window.onload = function(){  
  2. // 編寫代碼  
  3. }) 

現在詳細講解下windows.onload方法和$(document).ready()方法的區別:

假設網頁中有兩個函數,JavaScript代碼如下:

 

 
  1. function one(){  
  2. alert("one");  
  3. }  
  4. function two(){  
  5. alert ("two");  

當網頁加載完畢后,通過如下JavaScript代碼來分別調用one函數和two函數:

 

  
  1. window.onload = one;  
  2. window.onload = two; 

然而當運行代碼后,發現只彈出字符串“two”對話框。字符串“one”對話框不能被彈出的原因是JavaScript的onload事件一次只能保存對一個函數的引用,它會自動用后面的函數覆蓋前面的函數,因此不能在現有的行為上添加新的行為。

為了達到兩個函數順序觸發的效果,只能再創建一個新的JavaScript方法來實現,Javascript代碼如下:

 

 
  1. window.onload = function(){  
  2. one();  
  3. two();  

雖然這樣編寫代碼能解決某些問題,但還是不能滿足某些需求,例如有多個JavaScript文件,每個文件都需要用到window.onload方法,這種情況下用上面提到的方法編寫代碼會非常麻煩。而jQuery的$(document).ready()方法能夠很好地處理這些情況,每次調用$(document).ready()方法都會在現有的行為上追加新的行為,這些行為函數會根據注冊的順序依次執行。例如如下jQuery代碼:

 

 
  1. function one(){  
  2. alert("one");  
  3. }  
  4. function two(){  
  5. alert("two");  
  6. }  
  7. $(document).ready(function(){  
  8. one();  
  9. })  
  10. $(document).ready(function(){  
  11. two();  
  12. }); 

運行代碼后,會先彈出字符串“one”對話框,然后彈出字符串“two”對話框。

下面看看ready()與onload()的耗時:

jQuery的ready()耗時 : 498 ms

簡寫方式

上面我們ready函數寫成這樣:

 

 
  1. $(document).ready(function(){  
  2. // 編寫代碼  
  3. }) 

也可以簡寫成這樣:

 

 
  1. $(function(){  
  2. // 編寫代碼  
  3. }) 

另外,$(document)也可以簡寫為$()。當$()不帶參數時,默認參數就是“document”,因此可以簡寫為:

 

 
  1. $().ready(function(){  
  2. // 編寫代碼  
  3. }) 

3種方式都是一樣的功能,讀者可以根據自己的喜好,選擇其中的一種。

希望本文所述對大家的jQuery程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品日韩久久久| 久久精品视频一| 亚洲欧美中文日韩v在线观看| 国产精品一香蕉国产线看观看| 在线观看亚洲区| 亚洲精品日韩在线| 欧美中文在线观看国产| 久久久之久亚州精品露出| 亚洲一区二区三区在线视频| 欧美日韩亚洲精品一区二区三区| 欧美极品欧美精品欧美视频| 日韩电影中文字幕一区| 欧美另类xxx| 久久久人成影片一区二区三区| 精品成人69xx.xyz| 日韩精品高清在线观看| 中文字幕欧美专区| 亚洲偷熟乱区亚洲香蕉av| 日本91av在线播放| 日日摸夜夜添一区| 亚洲视频综合网| 国产激情视频一区| 亚洲精品国产欧美| 日韩欧美国产网站| 亚洲激情视频在线观看| 在线精品国产成人综合| 国产日韩精品在线播放| 亚洲欧美日韩天堂| 国产精品欧美一区二区三区奶水| 国产九九精品视频| 激情成人在线视频| 国产91av在线| 国产精品日韩在线一区| 欧美精品18videosex性欧美| 97久久超碰福利国产精品…| 亚洲专区中文字幕| 成人h猎奇视频网站| 日韩激情第一页| 欧美成人免费在线视频| 欧美中文在线字幕| 国产精品日韩在线观看| 78m国产成人精品视频| 精品视频一区在线视频| 亚洲欧美综合v| 欧美性高潮床叫视频| 久久久国产一区二区| 国产热re99久久6国产精品| 亚洲国产精品成人一区二区| 久久中国妇女中文字幕| 亚洲福利视频专区| 国产精品美女免费| 国产精品丝袜视频| 欧美美女18p| 日韩精品免费在线播放| 日韩美女免费视频| 粉嫩av一区二区三区免费野| 一区二区三区回区在观看免费视频| 久久躁狠狠躁夜夜爽| 国产噜噜噜噜噜久久久久久久久| 欧美老女人www| 性欧美办公室18xxxxhd| 美女扒开尿口让男人操亚洲视频网站| 青草青草久热精品视频在线观看| 日韩高清欧美高清| 亚洲第一区在线| 亚洲欧美中文在线视频| 久久久国产精品视频| 2018中文字幕一区二区三区| 欧美性在线观看| 精品日本高清在线播放| 亚洲跨种族黑人xxx| 欧美精品在线网站| 国产精品久久精品| 欧美日韩国产丝袜另类| 欧美午夜xxx| 国产精品专区第二| 国产精品自产拍在线观看中文| 精品一区二区三区四区| 日韩av免费看| 色婷婷av一区二区三区在线观看| 国产精品一二三在线| 91精品久久久久久久久久入口| 日韩精品在线观看网站| 一区二区国产精品视频| 国产精品入口免费视| 欧美激情国产高清| 久久久久99精品久久久久| 日韩欧美aaa| 在线电影欧美日韩一区二区私密| 91国产高清在线| 日日噜噜噜夜夜爽亚洲精品| 奇米四色中文综合久久| 国产成人黄色av| 精品一区二区电影| 国产va免费精品高清在线| 91美女片黄在线观| 欧美成人第一页| 亚洲精品中文字幕有码专区| 色婷婷综合成人av| 青草成人免费视频| 亚洲已满18点击进入在线看片| 欧美黑人性视频| 亚洲国产97在线精品一区| 欧美性xxxx极品高清hd直播| 亚洲一区二区三区四区视频| 国产成人一区二区在线| 国产一区二区三区在线观看网站| 亚洲国产精品系列| 日韩免费观看视频| 国产69精品久久久| 精品国产一区二区三区在线观看| 欧美视频国产精品| 国产精品看片资源| 精品日本美女福利在线观看| 尤物yw午夜国产精品视频明星| 欧美影院成年免费版| 亚洲精品国产品国语在线| 国产成人精品国内自产拍免费看| 久久免费成人精品视频| 黑人狂躁日本妞一区二区三区| 欧美与欧洲交xxxx免费观看| 国产精品99久久久久久白浆小说| 欧美一区第一页| 色妞在线综合亚洲欧美| 欧美极品美女电影一区| 91啪国产在线| 久久综合电影一区| 日本精品性网站在线观看| 成人午夜激情网| 亚洲精品456在线播放狼人| 国产精品热视频| 欧美一级黑人aaaaaaa做受| 综合网日日天干夜夜久久| 日本伊人精品一区二区三区介绍| 九九精品在线观看| 国产在线播放91| 欧美在线观看一区二区三区| 神马久久久久久| 色久欧美在线视频观看| 国模精品视频一区二区三区| 91精品国产91久久久久久不卡| 欧美激情手机在线视频| 日韩中文在线不卡| 视频一区视频二区国产精品| 欧美不卡视频一区发布| 国产99在线|中文| 久久久久久有精品国产| 欧美日韩在线视频首页| 亚洲91精品在线观看| 蜜月aⅴ免费一区二区三区| 色综合色综合久久综合频道88| 欧美高清无遮挡| 日韩欧美国产高清91| 在线观看久久久久久| 亚洲丁香久久久| 亚洲欧美日本精品| 日韩av色综合| 亚洲欧美福利视频| 大荫蒂欧美视频另类xxxx| 亚洲欧美日韩中文在线制服| 一本色道久久综合狠狠躁篇的优点| 亚洲精品720p| 91久久在线播放| 91精品久久久久久久|