我正在尝试在我的个人网站上构建一个页面,该页面都使用了jQuery
并实现了Facebook Connect
。
不幸的是,Facebook client API
使用$ token
,这意味着我必须打电话给jQuery.noConflict()
双重 - 不幸的是,我发现了一些疯狂的原因和as Rick Strahl points out, jQuery UI doesn't respect noConlict(). At all.事实上,如果你看一下源代码,就会有$
s。
我真的希望能够使用jQuery UI - 特别是dialog()
component和draggable
也会非常好 - 但我甚至更多,我不想手工编辑 - 测试和维护 - 我自己jQuery UI的任何部分的副本。
这是yaks I've had to shave系列中的最新版本,它让我在我的智慧结束时。有什么建议?救命!
你引用的帖子已经很老了,已经过时了。 1.0
发布的jQuery UI
在几个文件中有这个问题,并在报告后立即修复。
所有的jQuery UI都包含在closure
中,它以jaz的形式传递为$
,因此可以在内部使用$,而$则用于外部的其他内容。
来自http://docs.jquery.com/Using_jQuery_with_Other_Libraries#Referencing_Magic_-_Shortcuts_for_jQuery
使用以下技术,它允许您在代码块内部使用$而不会永久覆盖$:
(function($) { /* some code that uses $ */ })(jQuery)
注意:如果您使用此技术,您仍然可以通过window.$
使用Prototype,例如window.$('some_element_id')
。在闭包之外引用$
的任何函数都将调用Prototype,即使从闭包内部调用也是如此。
这就是为什么你会在jQuery UI文件中看到$
,但请放心,jQuery UI (1.5+)
完全支持任何最新版本的jQuery.noConflict()