2009-10-08 72 views
2

我正在研究一個使用jQuery內部工作正常的庫。但我不想強迫用戶使用我的jQuery版本,只是因爲他在他的代碼中使用了我的庫。如何更改jQuery的命名空間?

所以問題是,我怎樣才能以不同的名稱使用jQuery?

是否足以做這樣的事情:

var mylib.jQuery = {}; 
mylib.jQuery = jQuery.noConflict(true); 

這將使jQuery的可用mylib.jQuery下並釋放$符號,但原jQuery符號仍然有效(我認爲這是不太好)。

回答

5

你必須進入源代碼,因爲window.jQuery是在那裏定義的,只是更新引用名稱。

雖然這似乎是一個不合理的要求。

編輯:看起來你需要做的是設置基準以$ .noConflict:

<script src="jquery.js"></script> 
<script> 
var foo = {}; 
foo.jQuery = jQuery.noConflict(true); 
alert(typeof jQuery); 
alert(typeof $); 
alert(typeof foo.jQuery); 
</script> 

你必須你包括腳本後雖然這樣做的權利。我以前的方式直接在腳本做到了:

http://173.45.226.115/jquery.html

+0

之前沒有jQuery代碼/插件應該出現,但是爲什麼我的請求不合理? – rag 2009-10-08 04:56:05

+0

好吧,沒有衝突就足夠我想大多數了,嘿嘿。但是我會更新所有窗口。在源代碼中的語句。玩了一下之後更新了 – 2009-10-08 04:57:43

+0

。 – 2009-10-08 05:15:51

1

通過在jQuery.noConflict(true);指定真實的,它設置noConflict極端的模式,應該讓這樣就不會與任何其他庫發生衝突。這應該是你在我猜測的任何地方定義的第一個東西,所以在var mylib.jQuery = jQuery.noConflict(true);