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

JQuery: different versions clashing - is there a way I can isolate the versions?

本文关键字:版本 有没有 隔离 冲突 JQuery      更新时间:2023-09-26

在我的网站上,我使用了一些新的JQuery UI控件,如日期选择器和对话框。

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

我创建了一个测试解决方案,它成功了。

当我将它与currect Jquery控件和版本集成到我现有的解决方案中时,它会导致firebug中显示的许多错误。

这些是:

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

对于这段代码:

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

对于日期选择器JQuery ui控件:

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

对于对话框:

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

这些都可以很好地工作,直到我把带有cookie的inettuts dashobard解决方案放在这里: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,但当然需要新版本

干杯

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

<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的第一个版本。

是的,您可以使用jQuery.noConflict.

相关文章: