1. 程式人生 > >引入jquery時多個js庫的衝突解決

引入jquery時多個js庫的衝突解決

當一個專案中引入多個第三方庫的時候,由於沒有名稱空間的約束(名稱空間就好比同

一個目錄下的資料夾一樣,名字相同就會產生衝突),庫與庫之間發生衝突在所難免。

那麼,既然有衝突的問題,為什麼要使用多個庫呢?原因是jQuery 只不過是DOM 操

作為主的庫,方便我們日常Web 開發。但有時,我們的專案有更多特殊的功能需要引入其

他的庫,比如使用者介面UI 方面的庫,遊戲引擎方面的庫等等一系列。

而很多庫,比如prototype、還有我們JavaScript 課程開發的Base 庫,都使用“$”作為

基準起始符,如果想和jQuery 共容有兩種方法:

  1. 將jQuery 庫在Base 庫之前引入,那麼“$”的所有權就歸Base 庫所有,而jQuery 可

    以直接用jQuery 物件呼叫,或者建立一個“$$”符給jQuery 使用。

    var $$ = jQuery; //建立一個$$的jQuery 物件

    $(function () { //這是Base 的$

    alert($('#box').ge(0)); //這是Base 的$

    alert($$('#box').width()); //這是jQuery 的$$

    });

  2. 如果將jQuery 庫在Base 庫之後引入,那麼“$”的所有權就歸jQuery 庫所有,而Base

    庫將會衝突而失去作用。這裡,jQuery 提供了一個方法:

    jQuery.noConflict(); //將$符所有權剔除

    var $$ = jQuery;

    $(function () {

    alert($('#box').ge(0));

    alert($$('#box').width());

    });