2009-10-08 70 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);