我有一个冲突问题,我需要在同一页面使用两个版本的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);
答案 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对象,这对性能肯定不好,尽管在最近的计算机上可能不会引人注意。