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()。