• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當前位置: 首頁 - 科技 - 知識百科 - 正文

    jQuery中document與window以及load與ready區別詳解_jquery

    來源:懂視網 責編:小采 時間:2020-11-27 21:31:06
    文檔

    jQuery中document與window以及load與ready區別詳解_jquery

    jQuery中document與window以及load與ready區別詳解_jquery:用過JavaScript的童鞋,應該知道window對象和document對象,也應該聽說過load事件和ready事件,小菜當然也知道,而且自認為很了解,直到最近出了問題,才知道事情并不是那么簡單。 首先說說window和document,直觀上來講,window代表的是瀏覽器窗口,而
    推薦度:
    導讀jQuery中document與window以及load與ready區別詳解_jquery:用過JavaScript的童鞋,應該知道window對象和document對象,也應該聽說過load事件和ready事件,小菜當然也知道,而且自認為很了解,直到最近出了問題,才知道事情并不是那么簡單。 首先說說window和document,直觀上來講,window代表的是瀏覽器窗口,而
    用過JavaScript的童鞋,應該知道window對象和document對象,也應該聽說過load事件和ready事件,小菜當然也知道,而且自認為很了解,直到最近出了問題,才知道事情并不是那么簡單。

    首先說說window和document,直觀上來講,window代表的是瀏覽器窗口,而document代表的是瀏覽器窗口中加載的dom元素,進一步說,document是window的一個屬性,window是最頂級的對象。

    二者有啥區別呢?很好理解,假設現在有一個瀏覽器,里邊加載的頁面特別長,已經超出了一屏,當然,肯定會出現滾動條了,這時候,$(window).height()和$(document).height()是不相等的,document的高度肯定要比window的大,因為window窗口始終就是那么大。見下圖:

    再說說load事件和ready事件(這里的load和ready是指jQuery的事件,下同)。

    先說load,load事件主要就是用來代替原生的window.onload,它只能用在兩個場景下:

    · window對象上。比如$(window).load(fn);。

    · 帶有URL的元素(images, scripts, frames, iframes)。比如$(“img”).load(fn);。

    除此之外,任何元素都沒有load事件,比如:$(document).load(fn);這是錯誤的寫法,根本不會執行。

    load事件需要頁面完全加載完成才可以觸發,所謂的完全加載完,不僅僅是dom結構加載完,還需要所有的鏈接引用都加載完才可以。比如頁面中有大量圖片,必須等每一個圖片都加載完成,才叫完全加載完。

    最重要的還沒說,jQuery官方文檔明確說明load事件的跨瀏覽器兼容性很差(It doesn't work consistently nor reliably cross-browser)。經過小菜測試,谷歌瀏覽器僅僅支持$(window).load(fn);,而火狐瀏覽器支持$(window).load(fn);和$(“img”).load(fn);。

    所以,除非必要情況下,否則強烈不推薦使用load事件。

    最后說說ready,ready事件可以加在任意元素上,比如$(window).ready(fn);、$(document).ready(fn);、$(“div”).ready(fn);等等。

    ready事件不要求頁面完全加載完,只需要加載完dom結構即可觸發。

    ready事件可以同時注冊多個,執行時,按照注冊的先后順序執行。注意,就算是注冊不同元素的ready事件,也是按照先后順序執行。例如下列代碼:

    代碼如下:
    $(window).ready(function(){
    alert("window");
    });
    $(document).ready(function(){
    alert("document");
    });
    $("div").ready(function(){
    alert("div");
    });

    按照常理,應該是div先加載完,所以先執行alert("div");,然后才是alert("document");或alert("window");,但遺憾的是,alert("div");是最后一個執行的。所以,無論是否在同一元素上注冊ready事件,都是按照注冊的先后順序執行。

    最后一項,ready事件與window.onload(或)是沖突的,如果使用了window.onload(或),將導致ready事件不執行。

    經過如此多的討論,最終證明:$(document).ready(fn);兼容性、安全性是最好的,如果有此類需求,盡量采用這種方式。

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    jQuery中document與window以及load與ready區別詳解_jquery

    jQuery中document與window以及load與ready區別詳解_jquery:用過JavaScript的童鞋,應該知道window對象和document對象,也應該聽說過load事件和ready事件,小菜當然也知道,而且自認為很了解,直到最近出了問題,才知道事情并不是那么簡單。 首先說說window和document,直觀上來講,window代表的是瀏覽器窗口,而
    推薦度:
    標簽: 區別 window load
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 久久久久人妻精品一区二区三区| 99热精品在线观看| 凹凸国产熟女精品视频app | 久久精品无码av| 久久99热国产这有精品| 亚洲Av永久无码精品三区在线 | 国产日韩久久久精品影院首页| 久久精品国产久精国产思思| 无码日韩精品一区二区人妻 | 国产精品日韩AV在线播放| 日韩精品一区二区三区中文字幕 | 中文字幕亚洲精品无码| 国产精品无码不卡一区二区三区| 国内少妇偷人精品视频免费| 亚洲AV无码久久精品色欲| 欧美人与性动交α欧美精品成人色XXXX视频 | 亚洲人成电影网站国产精品| 精品国产AⅤ一区二区三区4区 | 精品无人码麻豆乱码1区2区| 亚洲精品乱码久久久久久| 人妻无码精品久久亚瑟影视| 精品免费久久久久国产一区 | 久久精品国产一区二区电影| 国产精品欧美久久久久无广告 | 中国精品videossex中国高清| 精品国产综合成人亚洲区 | 国产AV午夜精品一区二区入口 | 亚洲精品色婷婷在线影院| 欧美久久亚洲精品| 免费人成在线观看欧美精品| 精品一区二区三区四区在线| 久久国产午夜精品一区二区三区| 国产偷伦精品视频| 久久se精品一区二区影院 | 9久久9久久精品| 华人在线精品免费观看| 国产精品久久久久久久| 国产精品成人观看视频免费| 久久精品国产69国产精品亚洲| 欧美精品一区二区三区视频| 91精品免费久久久久久久久|