首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >内网JQuery实例

内网JQuery实例
EN

Stack Overflow用户
提问于 2010-05-11 21:48:18
回答 2查看 678关注 0票数 0

我们正在编写一个类似SaaS的解决方案,需要我们的客户SCRIPT SRC一些javascript代码,我们正在建设(想想谷歌分析场景)。我们想使用JQuery。然而,由于我们的客户可能已经有了冲突的JQuery版本或其他冲突的框架(prototype.js就是其中之一),我们不能告诉他们使用jquery.js。

我们正在考虑如何应对jquery源代码,以创建一个“私有”的jquery实例,并用myJQuery$J简单地搜索/替换JQuery$函数

这有什么原因不起作用吗?有没有人试过这样的东西?我们能对插件做些什么呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-05-11 21:52:53

您应该能够使用jQuery.noConflict()来实现这一点

但是这并没有解决插件的问题:

许多JavaScript库使用$作为函数名或变量名,就像jQuery一样。在jQuery的例子中,$只是jQuery的别名,所以所有功能都可以在不使用$的情况下使用。如果我们需要在使用jQuery的同时使用另一个JavaScript库,我们可以通过调用$.noConflict()将$的控制权返回给另一个库:

这种技术与.ready()方法为jQuery对象赋予别名的功能结合起来尤其有效,因为在传递给.ready()的回调中,如果愿意,我们可以使用$,而不必担心以后会发生冲突:

如果有必要,我们还可以通过将true作为参数传递给该方法来释放jQuery名称。这很少是必要的,如果我们必须这样做(例如,如果我们需要在同一个页面上使用多个版本的jQuery库),我们需要考虑大多数插件依赖于jQuery变量的存在,并且在这种情况下可能无法正确运行

票数 2
EN

Stack Overflow用户

发布于 2010-05-11 22:01:20

你可以这样做:

代码语言:javascript
运行
复制
// << include your own jQuery version >> 

alert("jQuery version: " + jQuery().jquery);  // 1.4.2 -- or whatever you included

ourJQ = jQuery.noConflict(true);

alert("jQuery version: " + jQuery().jquery); // 1.3.2 -- or whatever was included before

如果您包含插件或其他任何东西,只需将其全部封装在一个匿名函数中即可创建闭包:

代码语言:javascript
运行
复制
(function ($) {
    // in here, $ is your jQuery version
    alert($().jquery); // "1.4.2"
})(ourJQ);

// out here, $ is the previously included version
alert($().jquery) // "1.3.2"
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2811211

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档