jquery版本之间的冲突
<!-- 引入1.6.4版的jq -->
<
script
src
=
"http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.js"
></
script
>
<
script
> var jq164 = jQuery.noConflict(true); </
script
>
<!-- 引入1.4.2版的jq -->
<
script
src
=
"http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js"
></
script
>
<
script
> var jq142 = jQuery.noConflict(true); </
script
>
<
script
>
(function($){
//此时的$是jQuery-1.6.4
$('#header');
})(jq164);
</
script
>
<
script
>
(function($){
//此时的$是jQuery-1.4.2
$('#footer');
})(jq142);
</
script
>
在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库中,有这样一个函数
function $(objName) {
if (document.getElementById) {
return eval('document.getElementById("' + objName + '")')
}
else {
return eval("document.all." + objName)
}
大家都知道jQuery里面也一个这样的函数,为了不引起冲突,我们将jQuery的变量$的控制权移交出给别的javascript库
jQuery.noConflict(); //将变量$的控制权移交给JsCOM.js
var $cr = jQuery("#cr"); //照样使用jQuery类库,只是用jQuery代替了原来的$而以。
var JsCOM_cr = $("cr"); //使用JsCOM.js类库
在这里可以把jQuery()函数作为jQuery对象的制造工厂.
在这里要注意几点
1.引用javascript类库时,一定要把jQuery引用放在最后面,就像上面一样,JsCOM.js的引用在jQuery引用的前面(具体原因我也不知,不过确实需要这样)
2.特别要注意jQuery()代替$()时,jQuery是区分大小写的,因为javascript本身就是区分大小写的(好像说这个有点多余,不过还是希望大家不要犯这种错误)
基本上根据上面的方法就可以解决jQuery和其它库的冲突问题了!
如果你觉得上面的方式不爽,每次都要打jQuery来代替$增加了您敲键盘的工作量,那请接着看。。
除上面之外,还有另一种选择。如果想确保jQuery不会与其它库冲突,但又想自定义一个快捷方式,可以进行如下操作;
var $j = jQuery.noConflict(); //自定一个快捷方式
var $cr = $j("#cr"); //使用jQuery类库,得用自定义快捷方式----$j;
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版本之间的冲突相关推荐
- 发现无法解决的相同从属程序集的不同版本之间的冲突
本文翻译自:Found conflicts between different versions of the same dependent assembly that could not be re ...
- 【三】版本之间穿梭切换
版本之间穿梭切换 1. 版本回退 2. 回退版本 3. 工作区和暂存区 4. 管理修改 5. 撤销修改 6. 删除文件 再穿梭前,我们先修改readme.txt文件,修改为: Git is a dis ...
- Python 应用领域以及版本之间的区别
Python 应用领域以及版本之间的区别 一.Python应用领域 Python+人工智能,给你更多研究方向选择! 企业级综合实战项目,集六大前沿技术为一体 二. Python 2与Python 3的 ...
- 解决jquery和prototype库冲突问题
解决jquery和prototype库冲突问题 参考文章: (1)解决jquery和prototype库冲突问题 (2)https://www.cnblogs.com/Joanna-Yan/p/483 ...
- git 比较两个版本之间的区别
查看当前没有add 的内容修改 git diff 查看已经add 没有commit 的改动 git diff --cached 查看当前没有add和commit的改动: git diff HEAD 或 ...
- jQuery版本不同及多次引用问题
jQuery版本在不断更新,许多插件并不能很好地工作在各个版本上,并且发现如果在一个页面中多次引用jQuery将会出现问题,害得我折腾了好久,才发现是重复引用问题. 为了避免重复引用,最好在jQuer ...
- TF版本升级问题集合:成功解决由于不同的TensorFlow版本之间某些函数的用法引起的错误
TF版本升级问题集合:成功解决由于不同的TensorFlow版本之间某些函数的用法引起的错误 目录 遇到的问题以及对应解决方法 遇到的问题以及对应解决方法 Transitioning to Tenso ...
- GP TEE_ObjectInfo结构体在不同的版本之间的变化
概况和背景: 在optee SDK中使用GP标准接口开发的TA,移植到Trustonic-TEE上,编译报错了.rootcause:我开发的TA是参考optee_example repository的 ...
- matlab版本之间的单双引号问题
matlab版本之间的单双引号问题 问题描述 运行matlab文件的时候出现错误提示 Creating a string using double quotes is not supported. U ...
- Oracle导入到不同的角色,oracle 不同版本之间的导入导出
不同版本oracle导入导出解决办法. 今天遇到一个比较特殊的情况,需要在oracle8中使用oracle9的数据,如是导入导出.费了大半天,从oracle9中导出的数据就是无法导入oracle8中. ...
最新文章
- 如果你写程序不愿写注释,只有一个原因
- Docker 安装 For CentOS 7.4
- 编程语言的分类及其优缺点,Python标准输入与输出
- BZOJ-1968: [Ahoi2005]COMMON 约数研究 (思想)
- Building a WAMP Dev Environment [3/4] - Installing and Configuring PHP
- RocketMQ概念整理
- 【git】前端使用git分支的开发流程
- daysmatter安卓版_days matter
- 测试自动化金字塔在软件开发中是如何使用的?
- windows安装docker后启动报错无法下载镜像文件Error with pre-create check: “Get https://github-production-release-ass
- 用语言控制Linux:Linux的语音识别软件
- Mariadb 10.0.12 服务器my.cf配置
- 简支梁挠度计算公式推导_挠度公式推导与计算
- c语言void* arg,void * arg什么意思
- 蚂蚁金服缘何自研Service Mesh?
- 【整理】MFC单文档程序窗口大小的设置
- IAR无法调试问题解决
- 波澜哥utau音源下载
- 群晖NAS教程(二十)、利用Docker安装zdir搭建个人云盘
- 学术期刊的级别、种类、等级,研究生看哪些论文,这篇文章全讲清楚了(自用笔记)