ready(),load(),onload事件的區(qū)別和使用

1.ready()

(1)DOM結(jié)構(gòu)加載完成,可以通過id或者class等對(duì)DOM進(jìn)行操作。此時(shí),一些大的圖片可能還沒有完全加載完成;

(2)可以任意標(biāo)簽上,該標(biāo)簽加載完后,就可以執(zhí)行語句;

(3)$(document).ready()可以簡(jiǎn)寫成:

??? $().ready(function(){...});

??? $(function(){...});

2.load()

(1)頁面完全加載完后執(zhí)行,不僅是DOM結(jié)構(gòu),還有頁面中的所有引用,例如圖片,所有都加載完后才會(huì)執(zhí)行;

(2)任何元素都沒有l(wèi)oad()事件;

(3)只能寫一次,若有多個(gè)load()事件,只會(huì)執(zhí)行最后一個(gè)。

3.onload事件

(1)頁面所有內(nèi)容包括圖片在內(nèi)的加載完后才會(huì)執(zhí)行;

(2)window.onload沒有簡(jiǎn)化寫法;

(3)window.onload不能同時(shí)編寫多個(gè),若有多個(gè),只會(huì)執(zhí)行最后一個(gè)。

4.用$(window).load(function(){...})而不用body.onload()的幾個(gè)理由

(1)共同點(diǎn):都是頁面所有內(nèi)容包括圖片在內(nèi)的加載完成后才會(huì)執(zhí)行;

(2)若有多個(gè)函數(shù),需要在body標(biāo)簽上寫很多個(gè)事件,如<body onload="fn1(); fn2()"></body>,若用$(window).load(function(){fn1()}),$(window).load(function(){fn2()}),可以看出比寫在body上清晰;

(3)若寫在body標(biāo)簽上,html和js不能完全分離。

綜上,建議使用$(document).ready(),DOM加載完成后就可以執(zhí)行,加快網(wǎng)速速度。若需要等所有內(nèi)容都加載之后之后,如圖片的裁剪等,則用$(window).load()。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容