我有一个冲突问题,我需要在同一页面上使用两个版本的jquery,需要1.7.2是我用来通过选择更改从数据库的php数据中从其他页面获取的函数,而我需要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);
如果绝对必要,这就是您可以完成此操作的方法:
<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对象,这肯定会对性能造成不利影响,尽管在较新的计算机上可能不会引起注意。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句