当前位置: 首页 > 编程日记 > 正文

jQuery与其它库冲突的解决方法(转)

原文出处:http://www.jb51.net/article/24014.htm

在jQuery库中,几乎所有的插件都被限制在它的命名空间里。全局的对象都很好地存储在jQuery命名空间里,因此当把jQuery和其它javascript类库一起使用时,不会引起冲突.

(注意:默认情况下,jQuery用$作为自身的缩写而以) 
如果jQuery类库和别的类库冲突的话,可以使用jQuerynoConflict()函数来将变量$的控制权移交出给其它的javaScipt库。看下面小片断代码 
<script type="text/javascript" src="../JS/JsCOM.js"></script> 
<script type="text/javascript" src="../jQuery/jquery-1.3.2-vsdoc2.js"></script> 
假设JsCOM.js库中,有这样一个函数

1 function $(objName) { 
2 if (document.getElementById) { 
3 return eval('document.getElementById("' + objName + '")') 
4 } 
5 else { 
6 return eval("document.all." + objName) 
7 } 

大家都知道jQuery里面也一个这样的函数,为了不引起冲突,我们将jQuery的变量$的控制权移交出给别的javascript库

1 jQuery.noConflict(); //将变量$的控制权移交给JsCOM.js 
2 var $cr = jQuery("#cr"); //照样使用jQuery类库,只是用jQuery代替了原来的$而以。 
3 var JsCOM_cr = $("cr"); //使用JsCOM.js类库 

在这里可以把jQuery()函数作为jQuery对象的制造工厂. 
在这里要注意几点 
1.引用javascript类库时,一定要把jQuery引用放在最后面,就像上面一样,JsCOM.js的引用在jQuery引用的前面(具体原因我也不知,不过确实需要这样) 
2.特别要注意jQuery()代替$()时,jQuery是区分大小写的,因为javascript本身就是区分大小写的(好像说这个有点多余,不过还是希望大家不要犯这种错误) 
基本上根据上面的
方法就可以解决jQuery和其它库的冲突问题了! 
如果你觉得上面的方式不爽,每次都要打jQuery来代替$增加了您敲键盘的工作量,那请接着看。。 
除上面之外,还有另一种选择。如果想确保jQuery不会与其它库冲突,但又想自定义一个快捷方式,可以进行如下操作;

1 var $j = jQuery.noConflict(); //自定一个快捷方式 
2 var $cr = $j("#cr"); //使用jQuery类库,得用自定义快捷方式----$j; 
3 var JsCOM_cr = $("cr"); //和上一段代码一样,使用的是JsCOM.js类库 

如果您还有别的要求,想继续使用原先的$(),同时还需要与别的类库不冲突的话,还有两种解决方法 
其一:

jQuery.noConflict(); //将变量$的控制权让给JsCOM.js 
jQuery(function($) 
{ 
$("p").click(function() //在函数内继续可以使用jquery类库的$()方法 
{ 
alert($(this).text()); 
}) 
}) 
var JsCOM_cr = $("cr"); // 在函数外面,照样可以使用JsCOM.js的$()方法 

其二:

jQuery.noConflict(); //将变量$的控件权移交给别的类库,使用jquery类库的$符号时,请使用jQuery("#id"); 
(function($) { //定义匿名函数并设置形参为$ 
$(function() { //匿名函数内部的$均为jQuery 
$("div").click(function() {//继续使用$()方法 
alert($(this).text()); 
}) 
}) 
}) 
(jQuery); //使用匿名函数且传递实参jQUery 
alert($("cr")); //使用的是jsCOM.js类库中的$()函数 

第二种方法应该是兼容旧的代码最好的方式,修改的代码是最少的! 
不过如果是新写的jQuery代码,我还是比较喜欢使用刚开始讲的那种(jQuery.noConflict(),然后就使用jQuery("#id"),这种方式) 
如果您的页面是先引用jQuery类库再引入别的类库的话,那么我们可以直接使用jQuery来做一些工作,同时,可以使用$()方法作为其它库的快捷方式。这里无需调用jQuery.noConflict()函数,请看下面代码

<script type="text/javascript" src="../jQuery/jquery-1.3.2-vsdoc2.js"></script> 
<script type="text/javascript" src="../JS/JsCOM.js"></script> 
jQuery().ready(function() { //无需调用jQuery.noConflict()函数 
var $cr = jQuery("#cr"); 
$cr.click(function() { 
if ($cr.is(":checked")) { 
alert("感谢你的支持!你可以继续操作了.."); 

}) 
}) 
alert($("cr")); //使用的是jsCOM.js类库中的$()函数

好了,看了上面这么多种方法来解决冲突,这下你可以放心的在您的项目中引用jQuery了吧 :)

转载于:https://www.cnblogs.com/m3Lee/p/3732459.html

相关文章:

ASP.NET 下载文件方式

protected void Button1_Click(object sender, EventArgs e){/*微软为Response对象提供了一个新的方法TransmitFile来解决使用Response.BinaryWrite下载超过400mb的文件时导致Aspnet_wp.exe进程回收而无法成功下载的问题。代码如下&#xff1a;*/Response.ContentType "a…

ITIL管理思想的执行工具发布

E8.HelpDesk是融入ITIL管理思想&#xff0c;并结合中国企业实施ITIL的实际需求&#xff0c;成功研发ITIL管理思想的执行工具&#xff0c;全面帮助中国企业高效导入ITIL管理体系&#xff0c;提升企业战略执行力。 E8.HelpDesk支持多种服务台管理体系&#xff0c;支持事件管理、问…

(C++)A+B 输入输出练习V 输入的第一行是一个正数N,表示后面有N行。每一行的第一个数是M,表示本行后面还有M个数。

#include<cstdio>/* 2 4 1 2 3 4 5 1 2 3 4 5 */int main(){int n,a;scanf("%d",&n);while(n--){int sum 0,m;scanf("%d",&m);for(int i 0;i<m;i){scanf("%d",&a);sum a;}printf("%d\n",sum); }return 0;}

Linux上重启服务的正确命令

在开发环境下&#xff0c;我们经常需要部署代码&#xff0c;重启服务&#xff0c;所以会把命令写在脚本中&#xff0c;方便使用。 我们可能这么写 #!/bin/bashps -ef | grep backend-api-1.0 | grep -v "\-\-color" |awk {print $2} |xargs kill -9 sleep 1 nohup ja…

Error: Most middleware (like bodyParser) ...

运行NodeJS时出现如下错误&#xff1a; Error: Most middleware (like bodyParser) is no longer bundled with Express and must be installed separately. 意思是 命令行中运行 npm install body-parser 回车&#xff0c;进行安装。 对源代码进行调整&#xff0c;加上 var b…

[导入][转]常用CSS缩写语法总结

使用缩写可以帮助减少你CSS文件的大小&#xff0c;更加容易阅读。css缩写的主要规则如下&#xff1a; 颜色 16进制的色彩值&#xff0c;如果每两位的值相同&#xff0c;可以缩写一半&#xff0c;例如&#xff1a; #000000可以缩写为#000;#336699可以缩写为#369; 盒尺寸 通常有下…

(C++)A+B 输入输出练习VI 每行的第一个数N,表示本行后面有N个数。

#include<cstdio>/* 4 1 2 3 4 5 1 2 3 4 5 */int main(){int n;while(scanf("%d",&n) ! EOF){int sum 0,a;for(int i 0;i<n;i){scanf("%d",&a);sum a;}printf("%d\n",sum); }return 0;}

NDK 提示undefined reference to xxx“的解决办法

在Android.mk文件的 LOCAL_SRC_FILES后面加入包含该类或函数的文件&#xff0c;用\隔开&#xff0c;\后换行继续添加 例如 LOCAL_SRC_FILES : NDKTest.cpp\bncore.c\bn_error.c\bn_fast_mp_invmod.c\bn_fast_mp_montgomery_reduce.c\bn_fast_s_mp_mul_digs.c\bn_fast_s_mp_mul_…

7. Query Expressions(查询表达式)

【返回目录】 查询表达式提供了与SQL这样的关系化和分级的查询语言相类似的语言集成的语法。一个查询表达式是以from子句开头以select或者group子句结束&#xff0c;这个初始的from子句可以在其后跟随任意多个from、let、where或者join子句。 那么查询表达式中的这些子句都是做…

CSS完美兼容IE6/IE7/IE8/IE9/IE10的通用方法

300px!important;width /**/:340px;margin:0 10px 0 10px} &#xff0c;关于这个/**/是什么我也不太明白&#xff0c;只知道IE5和firefox都支持但IE6不支持&#xff0c;如果有人理解的话&#xff0c;请告诉我一声&#xff0c;谢了&#xff01;&#xff1a;&#xff09; 3、ul标…

(C++)A+B 输入输出练习VII 输入包含若干行,每行输入两个整数a和b,由空格分隔。 对于每组输入,输出a和b的和,每行输出后接一个空行。

#include<stdio.h> /* 1 5 10 20 */int main() { int a,b;while(scanf("%d%d",&a,&b) ! EOF){printf("%d\n\n",ab);}return 0;}

Address already in use: JVM_Bind错误的解决

错误原因 tomcat的8005端口号被占用了 解决办法 关闭已有的占用端口 1. cmd—>netstat -an 查看当前开启的端口号 2. netstat -ano 获得端口号的pid码 3. skill -{pid} 杀死端口进程转载于:https://www.cnblogs.com/lxq0309/p/3736899.html

在SQL Server中如何转化长日期形式为短日期格式

convert(nvarchar(10),字段名,121)即可将时间格式转化为yyyy-mm-dd格式 convert中的121是指将datetime类型转换为char类型时获得包括世纪位数的4位年份。转载于:https://www.cnblogs.com/footleg/archive/2007/11/29/976451.html

看看Vector源码Java 9

2019独角兽企业重金招聘Python工程师标准>>> Vector类实现了一个可增长的对象数组。像数组一样&#xff0c;它包含可以使用整数索引随机访问。但是&#xff0c;Vector的大小可以根据需要增大或缩小&#xff0c;以适应在创建Vector之后添加和删除项目。 文档里的内容…

(C++)1016 部分A+B 正整数

#include<cstdio>int main(){ //1.读入a,Da,b,Dblong long a,b,Pa0,Pb0;int Da,Db;scanf("%lld%d%lld%d",&a,&Da,&b,&Db); //2.对于a,遍历每一位&#xff0c;加在Pa上 //2.1取余的方式遍历while(a>0){if(a%10Da){Pa Pa*10 Da;}a a/10;} …

MySQL Innodb日志机制深入分析

1.1. Log & Checkpoint Innodb的事务日志是指Redo log&#xff0c;简称Log,保存在日志文件ib_logfile*里面。Innodb还有另外一个日志Undo log&#xff0c;但Undo log是存放在共享表空间里面的&#xff08;ibdata*文件&#xff09;。 由于Log和Checkpoint紧密相关&#xff0…

单元测试的重要性

一些错误的认识 在实际的单元测试过程中总会有一些错误的认识左右着我们&#xff0c;使之成为单元测试最大的障碍&#xff0c;在此将其一一分析如下&#xff1a; 它太浪费时间了&#xff0c;现在要赶进度&#xff0c;时间上根本不允许&#xff0c;或者随便做做应付领导。 我是一…

浅谈网络协议(四) IP的由来--DHCP与PXE

2019独角兽企业重金招聘Python工程师标准>>> 上一节说过&#xff0c;IP就是一台计算机的通讯地址&#xff0c;要和其他机器通讯&#xff0c;就需要一个通讯地址&#xff0c;就要给网卡配置这么一个地址。 配置 IP 那如何配置呢&#xff1f;可以使用 ifconfig&#x…

(C++)1026 程序运行时间

#include<cstdio> const int CLK_TCK100;int main(){ //1.读入c1,c2int c1,c2;scanf("%d%d",&c1,&c2); //2.定义常量CLK_TCK100 //难点&#xff1a;不足 1 秒的时间四舍五入到秒 --不用round()&#xff0c;避免浮点数运算 int dif c2-c1;if(dif%100&…

Spring中@Autowired注解、@Resource注解的区别

Spring不但支持自己定义的Autowired注解&#xff0c;还支持几个由JSR-250规范定义的注解&#xff0c;它们分别是Resource、PostConstruct以及PreDestroy。  Resource的作用相当于Autowired&#xff0c;只不过Autowired按byType自动注入&#xff0c;而Resource默认按 byName自…

(C++)1046 划拳

划拳是古老中国酒文化的一个有趣的组成部分。酒桌上两人划拳的方法为&#xff1a;每人口中喊出一个数字&#xff0c;同时用手比划出一个数字。如果谁比划出的数字正好等于两人喊出的数字之和&#xff0c;谁就赢了&#xff0c;输家罚一杯酒。两人同赢或两人同输则继续下一轮&…

JAVA中重写equals()方法的同时要重写hashcode()方法

object对象中的 public boolean equals(Object obj)&#xff0c;对于任何非空引用值 x 和 y&#xff0c;当且仅当 x 和 y 引用同一个对象时&#xff0c;此方法才返回 true&#xff1b;注意&#xff1a;当此方法被重写时&#xff0c;通常有必要重写 hashCode 方法&#xff0c;以…

从0到1,苏宁API网关的演进之路

http://www.infoq.com/cn/articles/suning-11-11-api-gateway?utm_campaigninfoq_content&utm_sourceinfoq&utm_mediumfeed&utm_termglobal 2012年&#xff0c;在开放云融推动各产业全面发展的大背景下&#xff0c;苏宁API对外开放。基于苏宁各内部业务系统的资源…

HTML 注意事项

这行与下面图片的间距比较小asdf 代码如下: <table id"table1"cellspacing"0"cellpadding"0"width"100%"border"0"><tbody><tr><td>这行与下面图片的间距比较小</td></tr><tr>&l…

(C++)1008 数组元素循环右移问题

#include<cstdio> //注意&#xff1a;不允许使用另外数组,序列结尾不能有多余空格,不能直接认为right<n //1.读入数组长度&#xff0c;和右移位数&#xff0c;读入数组 //2.未必要对实际数组进行循环右移&#xff0c;只要输出结果表现出那样就可以 int main(){int n…

C# 文件操作(上传 下载 删除 文件列表...)

using System.IO; 1.文件上传 ---------- 如下要点&#xff1a; HTML部分&#xff1a; <form id"form1" runat"server" method"post" enctype"multipart/form-data"> <input id"FileUpLoad" type"file" …

5个常用Java代码混淆器 助你保护你的代码

【IT168 技术文档】 从事Java编程的人都知道&#xff0c;可以通过逆向工程反编译得到Java程序的源代码&#xff0c;这种反编译工具之一就是JAD。因此&#xff0c;为保护我们的劳动成果&#xff0c;尽可能给反编译人员制造障碍&#xff0c;我们可以使用Java Obfuscator(Java混淆…

9.8.6恢复系统数据库

系统数据库和用户数据库一样容易发生故障&#xff0c;所以确保它们得到足够的保护十分重 要。一般来说&#xff0c;恢复系统数据库时有两种选择。可以从备份还原&#xff0c;或者从头重建它们。我 强烈推荐备份还原方法&#xff0c;因为从头重建意味着有人量的工作要做。由于系…

(C++)1012 数字分类

#include<cstdio> //用switch...case语句来对读入的数字进行分类 //1.读入N //2.A2需要设置变号器 //3.A3,A4需要设置计数器 //注意&#xff1a;某一类数可能根本不存在 int main(){int n;scanf("%d",&n);int res[5]{};//初始化为0 int count[5]{};whil…

老调重弹:插件式框架开发的一个简单应用

VS 2008最近要做一个应用程序检测程序&#xff0c;就是要检测服务器上各应用程序的运行情况&#xff0c;由于各应用程序的差异&#xff0c;很难做一个统一的探测程序&#xff0c;于是决定对任意一个应用程序都采用独立的一条探测规则。为了开发、部署的方便&#xff0c;考虑使用…