欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

快速解決jQuery與其他庫(kù)沖突的方法介紹

 更新時(shí)間:2014年01月02日 09:11:28   作者:  
本篇文章主要是對(duì)快速解決jQuery與其他庫(kù)沖突的方法進(jìn)行了詳細(xì)的介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助

通常,當(dāng)在同一個(gè)頁(yè)面上使用jQuery和其他庫(kù)時(shí),全局名稱(chēng)$的定義是最大的爭(zhēng)論和沖突的焦點(diǎn)。眾所周知,jQuery使用$作為jQuery名稱(chēng)的別名,并將其用于jQuery公開(kāi)的每一個(gè)功能,但是其他庫(kù),最著名的就是Prototype,也使用$名稱(chēng)。

1. jQuery提供了$.noConflict()實(shí)用函數(shù)用來(lái)放棄對(duì)$標(biāo)識(shí)符的占用,以便其他庫(kù)使用它。

該函數(shù)的語(yǔ)法如下:
$.noConflict(jqueryToo)

將標(biāo)識(shí)符$的控制權(quán)歸還給其他庫(kù),允許在頁(yè)面上混合使用jQuery與其他庫(kù)。一旦執(zhí)行了該函數(shù),必須使用jQuery標(biāo)識(shí)符而不是$標(biāo)識(shí)符來(lái)調(diào)用jQuery的功能,

你也可以放棄jQuery標(biāo)識(shí)符(可選)

應(yīng)該在包含了jQuery之后,但尚未包含沖突庫(kù)之前調(diào)用這個(gè)方法。


盡管使用的是jQuery標(biāo)識(shí)符,但因?yàn)?是jQuery的別名,所以在應(yīng)用$.noConflict()之后所有jQuery的功能依然可用。我們可以定義更短的,但沒(méi)有沖突的jQuery別名,例如

var  $j = jQuery ;

2. 另一個(gè)常見(jiàn)的習(xí)慣用法是創(chuàng)建一個(gè)作用域環(huán)境,在該環(huán)境中$標(biāo)識(shí)符指向jQuery對(duì)象,在擴(kuò)展jQuery的時(shí)候這是個(gè)常用技巧,特別是對(duì)于插件作者來(lái)說(shuō),他們不可能對(duì)于頁(yè)面開(kāi)發(fā)者是否已經(jīng)調(diào)用$.noConflict()作出任何假設(shè),當(dāng)然也不能自行調(diào)用此函數(shù)以免破壞頁(yè)面開(kāi)發(fā)者的意愿,

這個(gè)習(xí)慣用法如下:
(function($) { }) (jQuery);
(function($) { })

這部分聲明了一個(gè)函數(shù)并用圓括號(hào)括起來(lái),由此生成一個(gè)表達(dá)式,這個(gè)表達(dá)式的結(jié)果是對(duì)一個(gè)匿名函數(shù)的引用,這個(gè)函數(shù)期望傳入單個(gè)參數(shù)并將其命名為$,在函數(shù)主體中,可以通過(guò)$標(biāo)識(shí)符來(lái)引用任何傳遞給這個(gè)函數(shù)的東西。因?yàn)閰?shù)聲明優(yōu)先于全局作用域中任何類(lèi)似的命名標(biāo)識(shí)符,所以任何在函數(shù)外定義的$值在函數(shù)內(nèi)都會(huì)被傳入的參數(shù)所代替。

(jQuery)

在匿名函數(shù)上執(zhí)行函數(shù)調(diào)用,將jQuery對(duì)象作為參數(shù)傳遞


在函數(shù)外部不管$標(biāo)識(shí)符是否已經(jīng)在Prototype或其他庫(kù)中定義,在函數(shù)體內(nèi)它總是指向jQuery對(duì)象。

當(dāng)使用這個(gè)技巧時(shí),外部聲明的$在函數(shù)體內(nèi)是不可用的。

3. 第二種的用法的一個(gè)變體也經(jīng)常用于聲明就緒處理函數(shù),從而形成了第三種語(yǔ)法,
jQuery( function($){
})

當(dāng)編寫(xiě)可重用的組件并且這些組件可能會(huì)用于已經(jīng)使用了$.noConflict()的頁(yè)面時(shí),最好對(duì)$的定義采取這種預(yù)防措施。

相關(guān)文章

最新評(píng)論