我们必须使用jQuery UI的网站,其中一个网站包含来自其他网站的一些部分。这些部分是基于Jquery UI Accordion构建的,但是我无法加载两个版本的UI。一个是1.8.11的自定义版本,另一个是完整版本(完整版不会加载)
有什么建议吗?
答案 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之前运行此脚本非常重要,除非它们也是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