2011-06-15 64 views
3

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

有什么建议吗?

+0

任何错误信息?你是否试图在同一个网站中加载两个版本?还是你说你有两个网站,每个网站都使用他们自己的版本,一个不会工作? – 2011-06-15 14:05:50

回答

0

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

这使您可以在一个页面上使用多个UI。

坏消息是,一旦文件已经生成,你就不能再添加上下文。

我不确定,但我认为在与UI分离的JavaScript文件中有一个链接,它会将您带到JQUERY UI构建页面,并且您可以使用上下文重新生成UI。

+0

@Rune FS是这个答案吗? – T9b 2011-06-23 21:37:49

+0

至少它是最接近任何一个来:)。它并没有真正解决加载相同构建版本的UI两次的问题,但问题可能是相同的,虽然 – 2011-07-04 10:04:49

+6

“[在] jQuery UI构建页面上......您可以使用上下文重新生成UI”您是否有这是一个参考?https://jqueryui.com/download/上的jQuery UI构建页似乎没有提及任何名为'CONTEXT'的内容,并且似乎没有控件来添加这样的内容。 – fooquency 2014-03-01 13:54:56

4

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

首先,你打电话给你想要的jQuery的版本中noconflicted:

<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> 

现在你可以调用所有的jQuery和jQuery UI功能与$jnine

Rememver:这是你运行此脚本之前任何其他jQueries被加载,除非他们也noConflicted重要。

0

另一种选择是将你的用户界面加载到它自己的上下文中。

<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