我們繼續(xù)說(shuō)JS涵亏,我們常常在頁(yè)面加載完成以后做一些操作晰韵,比如一些元素的顯示與隱藏链瓦、一些動(dòng)畫(huà)效果拆魏。我們通常有兩種方法來(lái)完成這個(gè)事情,一個(gè)就是window.onload事件慈俯,另一個(gè)就是JQuery的ready()方法渤刃。那么這 兩種方法有什么區(qū)別呢?往下看:
onload事件贴膘,是在頁(yè)面中所有元素以及內(nèi)容全部加載完成以后觸發(fā)的卖子;而ready()方法,則是在頁(yè)面的DOM結(jié)構(gòu)加載完畢以后就被觸發(fā)了刑峡。也就是說(shuō)ready()方法會(huì)在onload事件之前執(zhí)行洋闽。
舉一個(gè)例子:
假設(shè)有一個(gè)表現(xiàn)圖庫(kù)的頁(yè)面,這種頁(yè)面中可能會(huì)包含許多大型圖像氛琢,我們可以通過(guò)jQuery隱藏喊递、顯示或以其他方式操作這些圖像。如果我們通過(guò)onload頁(yè)面設(shè)置界面阳似,那么用戶(hù)在能夠使用這個(gè)頁(yè)面之前,必須要等到每一幅圖像都下載完成铐伴。更糟糕的是撮奏,如果行為稍微添加給哪些具有默認(rèn)行為的元素(比如鏈接),那么用戶(hù)的交互可能會(huì)導(dǎo)致意想不到的結(jié)果当宴。然而當(dāng)我們?cè)囉?(document).ready(){ }進(jìn)行設(shè)置時(shí)畜吊,這個(gè)界面就會(huì)更早地準(zhǔn)備好可用的正確行為。
使用$(document).ready(){ }一般來(lái)說(shuō)都要優(yōu)于試用onload事件處理程序户矢,但必須要明確一點(diǎn)的是玲献,因?yàn)橹С治募赡苓€沒(méi)有家在完成,所以類(lèi)似圖像的高度和寬度這樣的屬性此時(shí)不一定有效。
onload事件通常寫(xiě)成如下形式:
function myfunction() {
//your code
};
window.onload = myfunction;
或者:
window.onload = function(){
//your code
};
ready()方法通常如下:
$(document).ready(function(){
//your code
});
或者:
$().ready(function(){
//your code
});
上海領(lǐng)思教育科技有限公司是一家致力于高素質(zhì)軟件開(kāi)發(fā)人才培養(yǎng)的公司捌年,一方面解決企業(yè)招不到優(yōu)秀人才 的困擾瓢娜,同時(shí)為優(yōu)秀的大學(xué)畢業(yè)生提供改變命運(yùn)的機(jī)遇。公司自成立以來(lái)礼预,一直堅(jiān)持采用“好老師+好學(xué)生+ 好學(xué)習(xí)氣氛”的培養(yǎng)模式眠砾,已經(jīng)培養(yǎng)了一批又一批的IT人才。
上海領(lǐng)思期待您的加盟托酸。
地址:上海市浦東新區(qū)臨港新城水蕓路300號(hào)501室
電話:021-58010107
網(wǎng)址:http://www.lingsiedu.cn
簡(jiǎn)歷投遞:hr@lingsiedu.cn
再或者:
$(function(){
//your code
});
接下來(lái)再看兩個(gè)例子:
function first(){
alert("first");
}
function second(){
alert("second");
}
window.onload = second;
window.onload = first;
這段代碼會(huì)彈出“first”褒颈。
function first(){
alert("first");
}
function second(){
alert("second");
}
$(document).ready(function(){
first();
});
$(document).ready(function(){
second();
});
上面這段代碼會(huì)分別彈出“first”和“second”。
為什么會(huì)這樣呢励堡?因?yàn)閛nload是一個(gè)事件谷丸,它只能綁定一個(gè)值,后面的會(huì)覆蓋前面的应结;而ready()是一個(gè)方法刨疼,方法之間不會(huì)互相影響,所以會(huì)順序執(zhí)行摊趾。