JQuery:不同的版本冲突 - 有没有办法隔离版本?

时间:2011-06-23 15:39:04

标签: javascript jquery html

在我的网站上我使用了一些新的JQuery UI控件,比如datepicker和对话框。

我最近在网上找到了一个很酷的项目,展示了如何制作谷歌仪表板,这也是在bbc.co.uk网站上使用的。 这允许用户在选择时具有可以很好地移动的小部件。

我创建了一个测试解决方案,它有效。

当我使用当前的Jquery控件和版本将它集成到我的exisitng解决方案中时,它会导致firebug中显示的一些错误。

这些是:

$("#menu").mouseleave is not a function
$('#menu').mouseleave(function() { 

这段代码:

    $('#menu').mouseleave(function() {
        setSubItemVisibility();
    });

用于datepicker JQuery ui控件:

$(".startdate").datepicker is not a function
$(".startdate").datepicker({ dateFormat: 'dd/mm/yy' }); 
对话框

$("#inputupdatecontrol").dialog is not a function
position: 'top center' 

这些都可以正常工作,直到我在这里找到带有cookies dashobard解决方案的inettuts:http://james.padolsey.com/javascript/inettuts-with-cookies/

这包括以下JQuery版本和文件:

jquery-1.2.6.min.js
jquery-ui-personalized-1.6rc2.min.js
cookie.jquery.js
inettuts.js

有没有什么方法可以从我现有的JQuery版本中分离这些文件附带的功能? 我目前正在使用最新的Jquery版本并且没有任何问题,只有当我从旧版本中添加此功能时才会遇到问题。

我只在一个页面上使用这个旧版本的Jquery,但是当然需要新版本。

干杯

2 个答案:

答案 0 :(得分:2)

好的,这是完整的模式,请将以下内容放入:

<script src="jQuery1.3.js"></script>
<script>
    jq13 = jQuery.noConflict(true);
</script>
<script src="jQuery1.3.1.js"></script>
<script>
    jq131 = jQuery.noConflict(true);
</script>

<!-- original author's jquery version -->
<script src="jQuery1.2.3.js"></script>
  

变量jq13和jq131会   每个都用于特定版本   你需要的功能。

上面命令中的Jquery返回对其自身的引用,基本上将它“装箱”在另一个变量中。

因此,要调用1.3上的函数,您可以调用

jq13('#'+ myId).bind('onclick',function(){});

注意:您必须加载最后开发的第一个版本的javascript。

答案 1 :(得分:1)

是的,您可以使用jQuery.noConflict

相关问题