转自:http://www.cnblogs.com/warner/archive/2013/04/14/3021217.html
有时会有jQuery和其他的库或自己写的一些公共脚本文件一起使用的场景,就有可能会出现$冲突的问题,冲突的解决分两种情况:
1、jQuery库在其他库之后引用,如下所示:
<script type="text/javascript" src="Scripts/jquery-1.8.1.min.js"></script> <script type="text/javascript" src="Scripts/common.js"></script>
在common.js中有对$重新定义,代码如下:
function $(id) { return document.getElementById(id); }
下面是在jQuery中解决冲突的代码,有四种方式:
//方式1 jQuery.noConflict(); //将$控制权移交出去,以前使用$的地方都改用jQuery jQuery(document).ready(function () { alert(jQuery("#span1").html()); }); window.onload = function () { $("span1").innerHTML = "oec2003"; } //方式2 var $j=jQuery.noConflict(); //定义快捷方式 $j(document).ready(function () { alert($j("#span1").html()); }); window.onload = function () { $("span1").innerHTML = "oec2003"; } //方式3 jQuery.noConflict(); //在函数内部继续使用$ jQuery(function ($) { alert($("#span1").html()); }); window.onload = function () { $("span1").innerHTML = "oec2003"; } //方式4 jQuery.noConflict(); //在函数内部继续使用$另一种方式 (function ($) { $(function(){ alert($("#span1").html()); }); })(jQuery); window.onload = function () { $("span1").innerHTML = "oec2003"; }
2、jQuery库在其他库之前使用
//如果先引用jQuery脚本,可以不使用noConflict //jQuery.noConflict(); jQuery(document).ready(function () { alert(jQuery("#span1").html()); }); window.onload = function () { $("span1").innerHTML = "oec2003"; }