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