今天修改一个项目发现,前辈们自己写的一些方法和jquery冲突了,也就是$的冲突,以至于自己用jquery编写的新功能无法正常使用,细究后发现解决办法如下:使用 noConflict() 方法为 jQuery 变量规定新的名称,比如:
var j=$.noConflict();
运行这个函数将变量$的控制权让渡给第一个实现它的那个库。这有助于确保jQuery不会与其他库的$对象发生冲突。在运行这个函数后,就只能使用j变量访问jQuery对象。例如,在要用到$("#tab")的地方,就必须换成j("#tab")。
再来个事例:
var j = jQuery.noConflict();
j(function(){
j("#all").click(function(){
j(".batch").each(function(){
j(this).attr("checked", !j(this).attr('checked'));
});
});
j(":button").click(function(){
var arrBatch = new Array();
j(".batch:checked").each(function(){
arrBatch.push(j(this).val());
});
if(arrBatch.length == 0){
alert('你什么也没选中');
return false;
}else{
if(confirm('确定要作废选中项?')){
j.post('desh_ajax.php',{action:3,items:arrBatch},function(){
j("#searchitem").submit();
});
}else{
return false;
}
}
});
});
noConflict()更多用法参考:http://www.w3school.com.cn/jquery/core_noconflict.asp
注意:这个函数必须在你导入jQuery文件之后,并且在导入另一个导致冲突的库之前使用.当然也应当在其他冲突的库被使用之前,除非jQuery是最后一个导入的。