Jquery库及其他库之间的$命名冲突解决办法
首先我们应该知道,在jquery中,$(美元符号)就是jquery的别名,也就是说使用$和使用jquery是一样的,在很多时候我们命名空间时,正是因为这个$而产生的冲突的发生。比如说:$('#xmlas')和JQuery('#xmlas') 虽然在写法上不同,但在实际上却是完全等同的。
要想解决这个冲突,其实最简单的方法就是使用不同的名称来命名,或者让执行代码认为是不同的命名空间即可。
一、 jQuery库在其他库之前导入,直接使用jQuery(callback)方法如:
代码如下 | 复制代码 |
<html> <script type="text/javascript"> $("pp").style.display = 'none'; //使用prototype |
二、jQuery库在其他库之后导入,使用jQuery.noConflict()方法将变量$的控制权让渡给其他库,有以下几种方式:
代码如下 | 复制代码 |
<script type="text/javascript"> $("pp").style.display = 'none'; //使用prototype |
//代码二
代码如下 | 复制代码 |
<script type="text/javascript"> $("pp").style.display = 'none'; //使用prototype |
码三
代码如下 | 复制代码 |
<script type="text/javascript"> $("pp").style.display = 'none'; //使用prototype |
//代//代码四
代码如下 | 复制代码 |
<script type="text/javascript"> $("pp").style.display = 'none'; //使用prototype /*********************************************************************/ |
除了上面的方法之外,我们还可以采用第二种方法来解决冲突的问题,那就是最笨但最有效的解决方法:用自定义的命名空间来避免冲突。
比如说需要的项目名称为xmlas,那么我们原来的代码:
代码如下 | 复制代码 |
$('contentArea').show() |
就可以写成以下这种形式:
代码如下 | 复制代码 |
XMLAS('contentArea').show() |
3.在jquery代码中,当遇到冲突的时候我们可以使用$符号,这需要我们在ready事件中添上以下代码:
代码如下 | 复制代码 |
jQuery(document).ready(function($) { |
当然,您也可以简写成下面的形式:
代码如下 | 复制代码 |
jQuery(function($){ //这里为使用$的代码 }); |
由此,根据第一个方法来实现的完整代码如下:
代码如下 | 复制代码 |
//jquery库与其他库冲突的完整解决办法 <script type="text/javascript" src="photolist.js"></script> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> $.noConflict(); jQuery(function($) { //使用了$的jquery代码 }); //这里是你的其他js库代码 </script> |
当然,你也可以对上面的完整代码进行一步的简化,简化代码如下:
代码如下 | 复制代码 |
//简化后的代码 |
jQuery$命名冲突问题解决方法
解决JQuery中美元符号($)与$命名冲突
解决JQuery中$与JS插件库相冲突问题
jquery ajax 表单提交被浏览器拦截解决办法
jQuery中$.getJSON乱码问题解决办法
jquery ajax.getscript缓存问题解决办法
JQuery ui dialog(close)无效的解决办法
jQuery绑定和解绑点击事件及重复绑定解决办法
JQuery TypeError: this.parentNode is undefined解决办法
jquery中click与dblclick事件冲突解决方法
jquery (document).ready中使用document.write导致页面空白解决办法
jquery IE6 select.val() bug报错解决办法
Jquery库及其他库之间的$命名冲突解决办法的更多相关文章
- jquery获取不到append出来的新元素的解决办法
jquery获取不到append出来的新元素的解决办法 $('body').on("click","property",function(){}) jq1.7+ ...
- jQuery库冲突解决办法
一次面试中面试官问到jQuery解决怎么冲突?虽然以前看过,但是我已经不记得了. 我的思路就是如果让我来设计,那我就用一个默认值$,不传参数,那就用$,最后就挂载在window.$上,传参数就用传入名 ...
- macOS下加载动态库dylib报"code signature invalid"错误的解决办法
一.现象描述 在macOS上搞开发也有一段时间了,也积攒了一定的经验.然而,今天在替换工程中的一个动态库时还是碰到了一个问题.原来工程中用的是一个静态库,调试时发现有问题就把它替换成了动态库.这本来没 ...
- .Net Framework项目引用.NetStandard标准库出现版本冲突解决办法
今天在工作中出现一个引用问题,害我找问题找了很久.起因是在一个Winform项目下需要引用一个.NetStandard标准库,标准库引用了System.ComponentModel.Annotatio ...
- pycharm不能安装第三方库,错误代码Non-zero exit code (1) 的解决办法
pycharm版本 2019.3 大致意思是安装失败,建议的解决方案:尝试从系统终端运行此命令.确保使用正确的'pip'版本,该版本已为位于'C:\ Users \ G \ Desktoplgianf ...
- jquery的$post方法不发送空数组的解决办法
问题:jquery里的ajax在提交post请求时,如果数据里有一个空数组,则这个空数组不会提交上去 技术上的解决办法如下: 源代码: var params = { type : , ids:[] } ...
- css命名冲突解决方法
css的命名冲突目前有几种解决方法: 1.命名约定 人为的制定一下命名规则以避免冲突,例如前缀,嵌套等 2.CSS in JS 在JavaScript中写CSS,使用工具编译为css,最常见的是sty ...
- IOS lib(.a)库冲突解决办法
在引入第三方lib(.a)库时,经常会由于第三方lib库中又引入同你现有工程相同的开源代码而造成.o冲突,最近在集成汉王名片识别时发生ASIHttp的.o冲突.我想说的是像这种开源的使用率很高的源代码 ...
- Android 第三方库导致jar包冲突解决办法
这几天的任务是将mapbox的工程合到程序中去,但是合并过程却出现了问题 合并方法: 在app的build.gradle中添加 dependencies { compile ('com.mapbox. ...
随机推荐
- Node.js和mybatis分别实现mysql中like变量模糊查询
<!-- mybatis --> <where> <if test="varName != '' and varName != null" > ...
- eclipse/MyEclipse 日期格式、注释日期格式、时区问题[转]
http://www.cnblogs.com/hoojo/archive/2011/03/21/1990070.html 在eclipse/MyEclipse中,如果你的注释或是运行System.ou ...
- Cocos2d-x中由sprite来驱动Box2D的body运动(用来制作平台游戏中多变的机关)
好久都没写文章了,就来一篇吧.这种方法是在制作<胖鸟大冒险>时用到的.<胖鸟大冒险>中使用Box2D来进行物理模拟和碰撞检測,因此对每一个机关须要创建一个b2body.然后&l ...
- 使用Filter防止浏览器缓存页面或请求结果
仅仅须要两步: 1.定义一个Filter: /** * 防止浏览器缓存页面或请求结果 * @author XuJijun * */ public class NoCacheFilter impleme ...
- BZOJ 1051: [HAOI2006]受欢迎的牛 缩点
1051: [HAOI2006]受欢迎的牛 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/ ...
- 通过ulimit改善linux系统性能(摘自IBM)
本文介绍了 ulimit 内键指令的主要功能以及用于改善系统性能的 ulimit 用法.通过这篇文章,读者不仅能够了解 ulimit 所起的作用.而且能够学会怎样更好地通过 ulimit 限制资源的使 ...
- Android学习笔记之百度地图
步行路线搜索及RouteOverlay 方式与驾车路线搜索类似,只需将mMKSearch.drivingSearch(null, start, null, end)修改为mMKSearch.walki ...
- replace和insert的语句插入(转)
SELECT INTO 和 INSERT INTO SELECT 两种表复制语句 Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) valu ...
- 模式匹配运算符–Shell
转载:http://www.firefoxbug.net/?p=722 Var=/home/firefox/MyProgram/fire.login.name ${Variable#patte ...
- Android 定时器实现的几种方式和removeCallbacks失效问题详解
实现定时器有很多种方式,在这里我简单的介绍几种方式 (1)使用Handler + Runnable的方式 Handler handler = new Handler(); Runnable runna ...