我们必须使用jQuery UI的网站,其中一个网站包含一些来自其他网站的作品。这些作品是基于Jquery UI Accordion构建的,但我无法加载两个版本的UI。一个是1.8.11的定制版本,另一个是完整版本(全部不会加载)使用多个jQuery UI版本
有什么建议吗?
我们必须使用jQuery UI的网站,其中一个网站包含一些来自其他网站的作品。这些作品是基于Jquery UI Accordion构建的,但我无法加载两个版本的UI。一个是1.8.11的定制版本,另一个是完整版本(全部不会加载)使用多个jQuery UI版本
有什么建议吗?
请阅读JQUERY UI上的文档。如果不指定每个版本的CONTEXT,则不能使用两个版本的UI。
这使您可以在一个页面上使用多个UI。
坏消息是,一旦文件已经生成,你就不能再添加上下文。
我不确定,但我认为在与UI分离的JavaScript文件中有一个链接,它会将您带到JQUERY UI构建页面,并且您可以使用上下文重新生成UI。
一个小时后发现这一点。出于某种原因,没有人在互联网上解释过这一点。
首先,你打电话给你想要的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重要。
另一种选择是将你的用户界面加载到它自己的上下文中。
<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
任何错误信息?你是否试图在同一个网站中加载两个版本?还是你说你有两个网站,每个网站都使用他们自己的版本,一个不会工作? – 2011-06-15 14:05:50