需要使用jquery 1.7.2和1.8.2的2个版本

时间:2014-03-26 14:48:16

标签: javascript php jquery validation conflict

我有一个冲突问题,我需要在同一页面使用两个版本的jquery,需要1.7.2是一个函数,我用来从数据库中的其他页面获取根据选择的更改和我需要1.8.2来进行表单验证,但我可以做一个或者其他,如果我尝试两个不起作用。

我尝试使用jquery noconflict,但我不太明白,也许我做错了或不起作用。

需要1.7.2的功能:

            function getmes(dropdown)
   {
     ano = dropdown.options[dropdown.selectedIndex].value;
    $.ajax({
            url: "ajax/mes.php",
            dataType: "html",
            type: 'GET',
            async: true,
            data: {
                ano: ano
            },
            success: function (result) {
                $("#mes").append(result.replace(/[\r\n]+(?=[^\r\n])/g,''));
            }
            });
    }

这是需要1.8.2的函数:

var dataForm = new VarienForm('form-id', true);

1 个答案:

答案 0 :(得分:0)

如果绝对必要,你可以如何做到这一点:

<script src="jquery.1.7.2.js"></script>
<script>
/* Here, you can use $ with your jQuery 1.7.2 code, 
ie. use jQuery 1.7.2 as you normally would.*/
jQuery172 = jQuery.noConflict(true);
/*Now, you can no longer use $. Use jQuery172 with your jQuery 1.7.2
code here, ie. replacing "$" with "jQuery172" in your code.*/
</script>
<script src="jquery.1.8.2.js"></script>
<script>
/*Here, you can use $ again, but now with your jQuery 1.8.2 code, 
ie. use jQuery 1.8.2 as you normally would.*/
jQuery182 = jQuery.noConflict();
/*Now, you can no longer use $. Here, you can use jQuery172 with your 
jQuery 1.7.2 code and use jQuery182 with your jQuery 1.8.2 code.*/
</script>

但是,我建议您重构代码以支持更新版本。加载两个版本的jQuery意味着每个页面加载的带宽增加一倍。这对您的服务器(除非您使用CDN)和客户端都是一种负担。此外,浏览器必须两次构造jQuery对象,这对性能肯定不好,尽管在最近的计算机上可能不会引人注意。