在JavaScript中
window.onload = function(){
alert(“text1”);
};
等同于在jQuery中
$(window).load(function(){
alert("text1");
});
他們都是用于當(dāng)頁(yè)面的所有元素,包括外部引用文件,圖片等都加載完畢時(shí)運(yùn)行函數(shù)內(nèi)的alert函數(shù)。load方法只能執(zhí)行一次,如果在js文件里寫(xiě)了多個(gè),只能執(zhí)行最后一個(gè)。(初學(xué)者常常在頁(yè)面結(jié)構(gòu)里對(duì)元素直接寫(xiě)行為函數(shù),這樣是很丑陋的,可以用選擇器等,在js代碼里對(duì)元素進(jìn)行行為控制。)
在jQuery中
$(document).ready(function(){
alert("text2");
});
等同于(簡(jiǎn)化寫(xiě)法)
$(function(){
alert("text2");
});
他們都是用于當(dāng)頁(yè)面的標(biāo)準(zhǔn)DOM元素被解析成DOM樹(shù)后就執(zhí)行內(nèi)部alert函數(shù)。這個(gè)函數(shù)是可以在js文件里多次編寫(xiě)的,對(duì)于多人共同編寫(xiě)的js就有很大的優(yōu)勢(shì),因?yàn)樗行袨楹瘮?shù)都會(huì)執(zhí)行到。而且$(document).ready()函數(shù)在HMTL結(jié)構(gòu)加載完后就可以執(zhí)行,不需要等大型文件加載或者不存在的連接等耗時(shí)工作完成才執(zhí)行,效率高。
當(dāng)然 也要根據(jù)項(xiàng)目需求來(lái)使用,比如有時(shí)候有些時(shí)候圖片或者重要信息沒(méi)出來(lái),會(huì)對(duì)用戶(hù)操作產(chǎn)生誤導(dǎo),或者需要等獲取某些圖片高寬數(shù)據(jù)后再執(zhí)行的行為函數(shù),就得使用window.onload了。
區(qū)別
1.執(zhí)行時(shí)間
window.onload必須等到頁(yè)面內(nèi)包括圖片的所有元素加載完畢后才能執(zhí)行。
$(document).ready()是DOM結(jié)構(gòu)繪制完畢后就執(zhí)行,不必等到加載完畢。
2.編寫(xiě)個(gè)數(shù)
window.onload不能同時(shí)編寫(xiě)多個(gè),如果有多個(gè)window.onload方法,只會(huì)執(zhí)行一個(gè)
$(document).ready()可以同時(shí)編寫(xiě)多個(gè),并且都可以得到執(zhí)行
3.簡(jiǎn)化寫(xiě)法
window.onload沒(méi)有簡(jiǎn)化寫(xiě)法
$(window).load(function(){})和 window.onload區(qū)別在于前者可以寫(xiě)多個(gè)
$(document).ready(function(){
});可以簡(jiǎn)寫(xiě)成
$(function(){
});