引入jquery時多個js庫的衝突解決
阿新 • • 發佈:2019-01-09
當一個專案中引入多個第三方庫的時候,由於沒有名稱空間的約束(名稱空間就好比同
一個目錄下的資料夾一樣,名字相同就會產生衝突),庫與庫之間發生衝突在所難免。
那麼,既然有衝突的問題,為什麼要使用多個庫呢?原因是jQuery 只不過是DOM 操
作為主的庫,方便我們日常Web 開發。但有時,我們的專案有更多特殊的功能需要引入其
他的庫,比如使用者介面UI 方面的庫,遊戲引擎方面的庫等等一系列。
而很多庫,比如prototype、還有我們JavaScript 課程開發的Base 庫,都使用“$”作為
基準起始符,如果想和jQuery 共容有兩種方法:
-
將jQuery 庫在Base 庫之前引入,那麼“$”的所有權就歸Base 庫所有,而jQuery 可
以直接用jQuery 物件呼叫,或者建立一個“$$”符給jQuery 使用。
var $$ = jQuery; //建立一個$$的jQuery 物件
$(function () { //這是Base 的$
alert($('#box').ge(0)); //這是Base 的$
alert($$('#box').width()); //這是jQuery 的$$
});
-
如果將jQuery 庫在Base 庫之後引入,那麼“$”的所有權就歸jQuery 庫所有,而Base
庫將會衝突而失去作用。這裡,jQuery 提供了一個方法:
jQuery.noConflict(); //將$符所有權剔除
var $$ = jQuery;
$(function () {
alert($('#box').ge(0));
alert($$('#box').width());
});