使用多个jquery-ui版本

时间:2011-06-15 14:03:49

标签: jquery jquery-ui-dialog

我们必须使用jQuery UI的网站,其中一个网站包含来自其他网站的一些部分。这些部分是基于Jquery UI Accordion构建的,但是我无法加载两个版本的UI。一个是1.8.11的自定义版本,另一个是完整版本(完整版不会加载)

有什么建议吗?

3 个答案:

答案 0 :(得分:4)

一小时后计算出来。出于某种原因,没有人在互联网上解释过这一点。

首先,你要调用你想要被noconflicted的jQuery版本:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script type="text/javascript">
  var $jnine = jQuery.noConflict();
</script>

在这种情况下,我调用了新的jQuery $ jnine,引用了版本号。

现在您需要编辑 jquery-ui-1.10.0.custom.min.js 。这其实很简单。使用您喜欢的支持搜索和替换的文本编辑器打开它。 Notepad ++在我看来是最好的。

现在,您要搜索(jQuery),区分大小写,并将其替换为($jnine)然后将文件保存在任何位置,并在noConflict()函数运行后在您的网站上运行

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script type="text/javascript">
  var $jnine = jQuery.noConflict();
</script>

<script src="js/jquery-ui-1.10.0.custom_jnine.min.js"></script>

现在,您可以使用$jnine

调用所有jQuery和jQuery ui函数

记住:在加载任何其他jQuery之前运行此脚本非常重要,除非它们也是noConflicted。

答案 1 :(得分:1)

请阅读JQUERY UI上的文档。如果没有为每个版本指定一个CONTEXT,则不能使用两个版本的UI。

这允许您在一个页面上使用多个UI。例如。

坏消息是,一旦生成了文件,您就无法在之后添加上下文。

我不确定,但我认为在与UI相关的javascript文件中有一个链接可以带你到JQUERY UI构建页面,在那里你可以用上下文重新生成UI。

答案 2 :(得分:1)

另一个选择是将你的ui加载到它自己的上下文中。

<script language="javascript" type="text/javascript">
   var smartDonationsOldJQuery=jQuery;
   var smartDonationsOldCashSign=$;
</script>

<script language="javascript" type="text/javascript" src="http://rednao.com/wp-content/plugins/smartdonations/js/jquery-1.9.1.min.js"></script>
<script language="javascript" type="text/javascript" src="http://rednao.com/wp-content/plugins/smartdonations/js/jquery-ui-1.10.2.custom.js"></script>

<script language="javascript" type="text/javascript">
    var rnSDJQ=jQuery;
    window.jQuery =smartDonationsOldJQuery;
    window.$ = smartDonationsOldCashSign;
</script>

关于这一点的好处是你将拥有自己的jquery / jquery-ui副本,这些副本来自其余的代码(如果你正在创建组件,如wordpress组件,这真的很好)坏的是你将不得不再次加载jquery。

此处有更多信息(免责声明,我写了):Using multiple versions of jquery ui