解決jquery 命名符和其它框架的衝突問題

2022-03-07 11:49:59 字數 1703 閱讀 5649

jquery提供了乙個noconfilict的api來解決衝突。

使用方法:

jquery.noconflict():執行這個函式將變數$的控制權讓渡給第乙個實現它的那個庫。

jquery.noconflict(true):將$和jquery的控制權都交還給原來的庫。

第一種:

jquery.noconflict();

// do something with jquery

jquery("div p").hide();

// do something with another library's $()

$("content").style.display = 'none';

第二種:

jquery.noconflict();

(function($) );

})(jquery);

// other code using $ as an alias to the other library

第三種:

jquery.noconflict()(function()); 

// other code using $ as an alias to the other library

第四種:

var j = jquery.noconflict();

// do something with jquery

j("div p").hide();

// do something with another library's $()

$("content").style.display = 'none';

第五種:

var dom = {};

dom.query = jquery.noconflict(true);

// do something with the new jquery

dom.query("div p").hide();

// do something with another library's $()

$("content").style.display = 'none';

// do something with another version of jquery

jquery("div > p").hide();

noconfilict的原始碼:

noconflict: function( deep ) 

if ( deep && window.jquery === jquery )

return jquery;

},

在jquery原始碼的最開頭定義了:

(function())();

為了防止$和就jquery被覆蓋而進行儲存。

當deep為空的時候,「_$」覆蓋「window.$」,「$」的常規功能失效,但jquery還可以繼續使用。當有新的庫中重新定義「$」的時候,「jquery」繼續為jqquery的常規功能,而「$」就不是jquery中的了,它是屬於新的庫的常規功能;

當deep不為空的時候,它將「_jquery」覆蓋「window.jquery」,這樣導致可能jquery外掛程式失效;另外方法返回的jquery,實際上沒有被覆蓋。通過它完全可以移到新的乙個命名空間,如dom.query = jquery.noconflict(true); dom.query("div p").hide();

jquery中,多js檔案解決命名衝突

有2個js檔案 test01.js function test function2 function str jquery test02.js function test function2 function str jquery 呼叫檔案test.html 由於test01.js和test02.j...

jquery學習一 解決jquery和其他庫的衝突

jquery用 作為自身的快捷方式 解決兩種情況的衝突 1 jquery庫在其他庫之後匯入,可以使用jquery 函式作為建立jquery物件的工廠。另外,也可以自定義乙個jquery的快捷方式 j jquery.noconflict var j jquery.noconflict 自定義jquer...

駝峰命名法和模態對話方塊

模態對話方塊 window.showmodaldialog url 向目標對話方塊傳的值 視窗特徵引數 開啟模態對話方塊 模態對話方塊必須關掉才能對後端操作。模組對話方塊和視窗的區別是永遠置頂。特徵引數 用分號隔開,畫素大小用px。dialogheight,dialogwidth,center,等 ...