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. ...
随机推荐
- centos6.5下Python IDE开发环境搭建
自由不是想做什么就做什么,而是想不做什么就不做什么. ---摘抄于2016/11/30晚 之前学习了一段时间的Python,但所有部署都在windows上.正赶上最近在学习liux,以后 ...
- 深入了解 Dojo 的服务器推送技术
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html 内部邀请码:C8E245J (不写邀请码,没有现金送) 国 ...
- 不用submit 同样实现button 点击enter键进行提交
$(function(){ document.onkeydown = function (e) { var theEvent = window.event || e; var code = theEv ...
- HDU 1999 不可摸数
/* 中文题意: 中文翻译: 题目大意:见红字(例如以下) 解题思路:打表,将每一个数的合数之和存在一个数组之中 难点具体解释:用两个for循环写的,第二个for循环主要是解释两个数相乘不超过这个最大 ...
- C#制作一个消息拦截器(intercept)1
首先,我们先要制作一个自己定义Attribute,让他能够具有上下文读取功能,所以我们这个Attribute类要同一时候继承Attribute和IContextAttribute. 接口IContex ...
- [Angular-Scaled Web] 9. Control your promises with $q
Learn how to manually control how asynchronous requests are handled with the use of promises. Becaus ...
- HDU1013_Digital Roots【大数】【水题】
Digital Roots Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) To ...
- Metadata Lock原理8
http://www.kancloud.cn/taobaomysql/monthly/67141 MySQL· 5.7优化·Metadata Lock子系统的优化 背景 引入MDL锁的目的,最初是为了 ...
- 已知json类型根据类型封装集合
1编写帮助类根绝url得到json public static string Post(string url) { string strURL = url; //创建一个HTTP请求 HttpWebR ...
- git初步使用总结
今天时隔大半年之后再一次接触了git,发现在这学期学习过一点linux之后,对git的学习变得感觉一切都是那么理所当然. 下面仅仅是罗列一下我的学习笔记. 1.下载git可以到百度软件库下载,一般都可 ...