您好,登錄后才能下訂單哦!
當(dāng)一個(gè)項(xiàng)目引入多個(gè)第三方庫(kù)的時(shí)候,由于沒(méi)有命名空間的約束(命名空間就好比同一個(gè)目錄下的文件夾一樣,名字相同就會(huì)引發(fā)沖突),庫(kù)與庫(kù)之間的沖突在所難免。
既然有沖突問(wèn)題存在,為什么還要應(yīng)用多個(gè)庫(kù)呢?是因?yàn)閖Query不過(guò)是一個(gè)DOM操作為主的庫(kù),方便我們?nèi)粘EB的開發(fā),但有時(shí)候我們的項(xiàng)目可能需要應(yīng)用其他的庫(kù)來(lái)解決一些特殊的問(wèn)題。例如UI庫(kù),游戲庫(kù)等等。
例如prototype庫(kù)等等,或者自己定義的使用到了$符號(hào)的庫(kù),該如何解決呢?例如我們有一個(gè)自己開發(fā)的Base庫(kù),也是用到了$符號(hào),一般情況下有兩種解決方法
1、將jQuery庫(kù)在Base庫(kù)之前引用,那么“$”的所有權(quán)就交給了Base庫(kù),而jQuery可以直接使用jQuery對(duì)象調(diào)用,或者創(chuàng)建一個(gè)"$$"給jQuery使用。
//假設(shè)我們的Base庫(kù)中有一個(gè)ge()方法 var $$ = jQuery; $(function(){ alert($("#box").ge(0)); alert($$("#box").width()); })
2、如果jQuery庫(kù)在Base庫(kù)之后引用,那么“$”所有權(quán)歸jQuery所有,而Base庫(kù)將會(huì)因?yàn)闆_突而失去作用,在這里jQuery提供了一個(gè)方法
jQuery.noConflict(); //自我摧毀,將$所有權(quán)剔除 var $$ = jQuery; $(function(){ alert($("#box").ge(0)); alert($$("#box").width()); })
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。