jquery - Facebook Connect、jQuery UI 和 jQuery.noConflict()

标签 jquery facebook api jquery-ui

我正在尝试在我的个人网站上构建一个页面,该页面既使用了 jQuery 又实现了 Facebook Connect

不幸的是,Facebook 客户端 API 使用 $ token ,这意味着我必须调用 jQuery.noConflict()

双重不幸的是,出于某种疯狂的原因我发现了这一点并且as Rick Strahl points out, jQuery UI doesn't respect noConlict(). At all.事实上,如果您查看源代码,就会发现其中到处都是 $

真的希望能够使用 jQuery UI - 具体来说,dialog() 组件和 draggable 会非常好好吧 - 但我什至不想手动编辑 - 测试和维护 - 我自己的 jQuery UI 任何部分的副本。

这是 yaks I've had to shave 系列中的最新一期这让我束手无策。有什么建议么?帮助!

最佳答案

您引用的帖子非常陈旧且已过时。 jQuery UI1.0 版本在几个文件中存在此问题,并在报告后立即修复。

所有 jQuery UI 都包含在一个 闭包 中,该闭包将 jQuery 作为 $ 传递,因此可以在内部使用 $ 而 $ 在外部用于其他用途。

来自 http://docs.jquery.com/Using_jQuery_with_Other_Libraries#Referencing_Magic_-_Shortcuts_for_jQuery

Use the following technique, which allows you to use $ inside of a block of code without permanently overwriting $:

(function($) {
  /* some code that uses $ */
})(jQuery)

注意:如果您使用此技术,您仍然可以通过 window.$ 使用 Prototype,例如 window.$('some_element_id')。闭包之外的任何引用 $ 的函数都将调用 Prototype,即使是从闭包内部调用也是如此。

这就是为什么您会在 jQuery UI 文件中看到 $ 的原因,但请放心,任何最新版本的 jQuery UI (1.5+) 都完全支持 jQuery.noConflict()

关于jquery - Facebook Connect、jQuery UI 和 jQuery.noConflict(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/392334/

相关文章:

javascript - 如何在一个 JavaScript 中访问另一个 JavaScript 中的变量?

php - Facebook 的 5000 条 Post API 限制

java - 如何在 Java 中生成 .torrent?

javascript - 单击按钮更改背景图像(使用 jQuery 和 API)

javascript - 我如何检测(并纠正?)跨浏览器的各种滚动条可见性?

javascript - 变量值未正确传递

jquery 搜索适用于一列而不是整个 html 表

当我在 HTTP 请求中使用 Get 方法时出现 java.io.FileNotFoundException

javascript - 如何等待异步函数返回?

javascript - 如何使用 VueJS 获取 json Web API 的值