午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

learning jQuery學(xué)習(xí)筆記三

 昵稱21365845 2015-06-10

注:本筆記內(nèi)容摘自《jQuery基礎(chǔ)教程》+ jQuery 1.4.1中文參考

代碼執(zhí)行的時(shí)機(jī)選擇

$(document).ready()是jQuery中響應(yīng)JavaScript內(nèi)置的onload事件并執(zhí)行任務(wù)的一種典型方式。雖然$(document).ready()和onload具有類似的效果,但是,它們?cè)谟|發(fā)操作的時(shí)間上存在著微妙的差異。

當(dāng)一個(gè)文檔完全下載到瀏覽器中時(shí),會(huì)觸發(fā)window.onload事件處理程序,則會(huì)在DOM完全就緒并可以使用時(shí)調(diào)用。雖然也意味著所有元素對(duì)腳本而言都是可以訪問(wèn)的,但是,卻不意味著所有關(guān)聯(lián)的文件都已經(jīng)下載完畢。換句話說(shuō),HTML下載完成并解析為DOM樹(shù)之后,代碼就可以運(yùn)行。

當(dāng)我們使用$(document).ready()進(jìn)行設(shè)置時(shí),這個(gè)界面就會(huì)更早地準(zhǔn)備好可用的正確行為(相對(duì)于onload而言)。

 

基于一個(gè)頁(yè)面執(zhí)行多個(gè)腳本

       通過(guò)JavaScript注冊(cè)事件處理程序的傳統(tǒng)機(jī)制是,把一個(gè)函數(shù)指定給DOM元素的對(duì)應(yīng)屬性。例如,假設(shè)我們已經(jīng)定義了如下函數(shù):

function doStuff(){

       //執(zhí)行某種任務(wù)… …

}

那么,我們既可以在HTML標(biāo)記中指定該函數(shù):

<body onload=”doStuff();”>

也可以在JavaScript代碼中指定該函數(shù):

window.onload=doStuff;

這兩種方式都會(huì)導(dǎo)致在頁(yè)面加載完成后執(zhí)行這個(gè)函數(shù)。但第2種方式的優(yōu)點(diǎn)在于,它能使行為更清晰地從標(biāo)記中分離出來(lái)。現(xiàn)在,假設(shè)我們有定義了第2個(gè)函數(shù):

function doOtherStuff(){

       //執(zhí)行另外一種任務(wù)… …

}

我們也可以將它指定為基于頁(yè)面的加載來(lái)運(yùn)行:

window.onload= doOtherStuff;

然而,這次指定的函數(shù)會(huì)取代剛才指定的第1個(gè)函數(shù)。因?yàn)?onload屬性一次只能保存對(duì)一個(gè)函數(shù)的引用,所以不能在現(xiàn)有的行為基礎(chǔ)上再增加新行為。

對(duì)于這種情況下,通過(guò)$(document).ready()機(jī)制能夠得到很好的處理。每次調(diào)用那個(gè)這個(gè)方法都會(huì)向內(nèi)部的行為隊(duì)列中添加一個(gè)新函數(shù),當(dāng)頁(yè)面加載完成后,所有函數(shù)都將得到執(zhí)行。而且,這些函數(shù)會(huì)按照注冊(cè)它們的順序依次執(zhí)行。

 

縮短代碼的簡(jiǎn)寫方式

       前面提到的$(document).ready()結(jié)構(gòu),實(shí)際上是在基于document這個(gè)DOM元素構(gòu)建而成的jQuery對(duì)象上,調(diào)用了.ready()方法。因?yàn)檫@是一個(gè)常用方法,所以$()函數(shù)為我們提供了一種簡(jiǎn)寫方式。當(dāng)調(diào)用這個(gè)函數(shù)而不傳遞參數(shù)時(shí),該函數(shù)的行為就像是傳遞了document參數(shù)。也就是說(shuō),對(duì)于:

       $(document).ready(function(){

              //這里是代碼

});

也可以簡(jiǎn)寫成:

$().ready(function(){

       //這里是代碼

});

此外,這個(gè)工廠函數(shù)也可以接受另一個(gè)函數(shù)作為參數(shù)。此時(shí),jQuery會(huì)在內(nèi)部執(zhí)行一次對(duì).ready()的隱含調(diào)用,因此,使用下面的代碼也可以得到相同的結(jié)果:

$(function(){

       //這里是代碼

});

雖然這幾種語(yǔ)法都更短一些,但程序設(shè)計(jì)者們通常更喜歡使用較長(zhǎng)的形式能夠更清楚地表示代碼在做什么。


    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多