jQuery $命名冲突解决方案汇总

 最近遇到个问题,同时引用了jquery库和另外一个js库。当用$XX去调用js库函数时,发现失效了!于是找资料,原来是jquery命名冲突了。因为许多JavaScript 库使用$作为函数或变量名,jquery也一样。其实$只是jquery的一个别名而已,假如我们需要使用jquery 之外的另一js库,我们可以通过调用 $.noConflict() 向该库返回控制权。下面是收集到解决这一问题的五种方案,总有一种你会用得上的。

例一:

 

 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>冲突解决1</title>
<!-- 引入 prototype  -->
<script src="prototype-1.6.0.3.js" type="text/javascript"></script>
<!-- 引入 jQuery  -->
<script src="/scripts/jquery-1.3.1.js" type="text/javascript"></script>
</head>
<body>
<p id="pp">test---prototype</p>
<p >test---jQuery</p>
<script type="text/javascript">
jQuery.noConflict();                //将变量$的控制权让渡给prototype.js 
jQuery(function(){                    //使用jQuery 
    jQuery("p").click(function(){ 
        alert( jQuery(this).text() ); 
    }); 
}); 
$("pp").style.display = 'none';        //使用prototype 
</script>
</body>
</html>

 

例二:

 

代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>冲突解决2</title>
<!-- 引入 prototype  -->
<script src="prototype-1.6.0.3.js" type="text/javascript"></script>
<!-- 引入 jQuery  -->
<script src="/scripts/jquery-1.3.1.js" type="text/javascript"></script>
</head>
<body>
<p id="pp">test---prototype</p>
<p >test---jQuery</p>
<script type="text/javascript">
var $j = jQuery.noConflict();        //自定义一个比较短快捷方式 
$j(function(){                        //使用jQuery 
    $j("p").click(function(){ 
        alert( $j(this).text() ); 
    }); 
}); 
$("pp").style.display = 'none';        //使用prototype 
</script>
</body>
</html>

 

例三:

 

代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>冲突解决3</title>
<!-- 引入 prototype  -->
<script src="prototype-1.6.0.3.js" type="text/javascript"></script>
<!-- 引入 jQuery  -->
<script src="/scripts/jquery-1.3.1.js" type="text/javascript"></script>
</head>
<body>
<p id="pp">test---prototype</p>
<p >test---jQuery</p>
<script type="text/javascript">
jQuery.noConflict();                //将变量$的控制权让渡给prototype.js 
jQuery(function($){                    //使用jQuery 
    $("p").click(function(){        //继续使用 $ 方法 
        alert( $(this).text() ); 
    }); 
}); 
$("pp").style.display = 'none';        //使用prototype 
</script>
</body>
</html>

 

例四:

 

代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>冲突解决4</title>
<!-- 引入 prototype  -->
<script src="prototype-1.6.0.3.js" type="text/javascript"></script>
<!-- 引入 jQuery  -->
<script src="/scripts/jquery-1.3.1.js" type="text/javascript"></script>
</head>
<body>
<p id="pp">test---prototype</p>
<p >test---jQuery</p>
<script type="text/javascript">
jQuery.noConflict();                //将变量$的控制权让渡给prototype.js 
(function($){                        //定义匿名函数并设置形参为$ 
    $(function(){                    //匿名函数内部的$均为jQuery 
        $("p").click(function(){    //继续使用 $ 方法 
            alert($(this).text()); 
        }); 
    }); 
})(jQuery);                            //执行匿名函数且传递实参jQuery 
$("pp").style.display = 'none';        //使用prototype 
</script>
</body>
</html>

 

例五:

 

 代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>冲突解决5</title>
<!--先导入jQuery -->
<script src="/scripts/jquery-1.3.1.js" type="text/javascript"></script>
<!--后导入其他库 -->
<script src="prototype-1.6.0.3.js" type="text/javascript"></script>
</head>
<body>
<p id="pp">test---prototype</p>
<p >test---jQuery</p>
<script type="text/javascript">
jQuery(function(){   //直接使用 jQuery ,没有必要调用"jQuery.noConflict()"函数。 
    jQuery("p").click(function(){       
        alert( jQuery(this).text() ); 
    }); 
}); 
$("pp").style.display = 'none'; //使用prototype 
</script>
</body>
</html> 

时间: 2024-10-25 17:36:11

jQuery $命名冲突解决方案汇总的相关文章

jQuery $命名冲突解决方案汇总_jquery

最近遇到个问题,同时引用了jquery库和另外一个js库.当用$XX去调用js库函数时,发现失效了!于是找资料,原来是jquery命名冲突了.因为许多JavaScript 库使用$作为函数或变量名,jquery也一样.其实$只是jquery的一个别名而已,假如我们需要使用jquery 之外的另一js库,我们可以通过调用 $.noConflict() 向该库返回控制权.下面是收集到解决这一问题的五种方案,总有一种你会用得上的. 例一: 复制代码 代码如下: <!DOCTYPE html PUBLI

内存常见问题解决方案汇总

内存做为电脑三大件配件之一,担负着数据的临时存取等任务.在使用过程中,难免会出现一些问题,如启动电脑却无法正常启动.无法进入操作系统或运行应用软件.无故经常死机等故障,这些问题的产生常会因为内存出现异常故障而导致操作失败.内存出现问题一部分是因为升级内存,由于内存种类的不匹配,往往也会遇到一些问题;另一部分是内存在使用过程中,金手指与主板的插槽接触不良引起或者是中了病毒等原因引起的问题.此外,市场里内存条的质量又参差不齐,也致使内存会发生一些故障.现为方便解决这些内存常见问题,笔者将一些常见问题

ios-关于Objective-C命名冲突的解决办法

问题描述 关于Objective-C命名冲突的解决办法 Objective-C没有命名空间,对于经常出现的命名冲突,该怎么解决?如果是第三方库命名冲突呢? 解决方案 为了避免 命名 冲突 object c 一面 一般都是 添加前缀 比如系统sdk里面的 NS UI AB ... 如果是 第三方 库 中 的 命名 冲突 的话 开源的可以 自己 改改 ,否责 ,换个 库吧 个人感觉 无解 解决方案二: 自己的与第三方冲突?可以加上三个大写字母前缀,因为苹果占用了两个的.然后如果第三方与第三方冲突需要

eclipse 新建项目的时候,命名冲突检查的方法

问题描述 我想知道Eclipse提供的向导插件模板,或是新建工程向导中,进行命名冲突检查的方法是什么?该方法是否可改写?改写需要注意什么?大神们若能帮小妹解决,不胜感激 解决方案 解决方案二:想法非常怪异啊,除非Eclipese开源,或者本身它提供类似的接口.解决方案三:引用1楼daxuejianku的回复: 想法非常怪异啊,除非Eclipese开源,或者本身它提供类似的接口. Eclipse的确是开源的啊,就是不知道他这个接口是什么,要是能知道就好了

ASP.NET检测到不安全 Request.Form 值解决方案汇总

  这篇文章主要介绍了ASP.NET检测到不安全 Request.Form 值解决方案汇总 ,十分的全面,需要的朋友可以参考下 当我们在网站中使用CKEditor等富文本编辑器时,大多都会遇到这样的到警告 这是因为ASP.NET默认开启对页面提交内容的验证(不仅是ASP.NET MVC,WebForms也默认启用对页面提交的内容进行验证),解决这个问题的关键就在于在有富文本编辑器的页面或者会有提交html代码的页面关闭验证,可大致分为以下三种情况: 基于Framework2.0 webForm的

解决jquery中美元符号命名冲突问题

 在Jquery中,$是JQuery的别名,所有使用$的地方也都可以使用JQuery来替换,下面为大家介绍下如何解决jquery中美元符号命名冲突问题 在Jquery中,$是JQuery的别名,所有使用$的地方也都可以使用JQuery来替换,如$('#msg')等同于JQuery('#msg') 的写法.然而,当我们引入多个js库后,在另外一个js库中也定义了$符号的话,那么我们在使用$符号时就发生了冲突.下面以引入两个库文件 jquery.js和prototype.js为例来进行说明.   

两台电脑提示IP地址冲突 解决方案

  用的是无线路由器,正常连接一台电脑,可以上网,但只要有另一台电脑连接上这个无线网络,2台电脑都提示IP冲突,电脑设置的IP地址都是系统分配,这是什么问题?如何解决? 满意解答方案: 1.进入路由器将MAC地址克隆一下,保存退出.断电重启路由器!! 2.手工设置Internet协议(TCP/IP)属性,将IP地址设为固定IP且两台机的地址不同一般可以解决. 如下图. 两台电脑提示IP地址冲突 解决方案

git管理冲突解决方案…………

问题描述 git管理冲突解决方案---- 如果你注意到了我的提问,说明你已经是git管理高手,或者你曾经也遇到过这样的问题: git管理下的项目merge之后冲突,显示包内容方式打开.xocdeproj文件手动解决有<<<<<< 标示的冲突问题后,还是打不开,终端显示也还是打不开,接下来我怎么是好?求解决方案! 解决方案 用编辑器打开.xocdeproj看看有什么不对的地方呢 解决方案二: 用记事本,打开xocdeproj文件,手工修改<<<<&

IP冲突解决方案

个人IP地址冲突解决方案 1.如果您使用的计算机的操作系统是:windows 98 点击左下角"开始"→"运行",键入:winipcfg,点击"确定",在弹出的窗口中,点击"全部释放",然后点击"全部更新",即可解决问题. 如果系统提示无法更新,则需要重新启动计算机. 2.如果您使用的计算机的操作系统是:windows 2000 或windows XP 点击左下角"开始"→"运