Facebook Connect,jQuery UI和jQuery.noConflict()

问题描述 投票:6回答:1

我正在尝试在我的个人网站上构建一个页面,该页面都使用了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系列中的最新版本,它让我在我的智慧结束时。有什么建议?救命!

jquery facebook api jquery-ui
1个回答
18
投票

你引用的帖子已经很老了,已经过时了。 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()

© www.soinside.com 2019 - 2024. All rights reserved.