使用jquery时$符号冲突问题解决方案

当一个项目引入多个第三方库的时候,由于没有命名空间的约束(命名空间就好比同一个目录下的文件夹一样,名字相同就会引发冲突),库与库之间的冲突在所难免。

既然有冲突问题存在,为什么还要应用多个库呢?是因为jQuery不过是一个DOM操作为主的库,方便我们日常WEB的开发,但有时候我们的项目可能需要应用其他的库来解决一些特殊的问题。例如UI库,游戏库等等。

例如prototype库等等,或者自己定义的使用到了$符号的库,该如何解决呢?例如我们有一个自己开发的Base库,也是用到了$符号,一般情况下有两种解决方法

1、将jQuery库在Base库之前引用,那么“$”的所有权就交给了Base库,而jQuery可以直接使用jQuery对象调用,或者创建一个"$$"给jQuery使用。

//假设我们的Base库中有一个ge()方法
var $$ = jQuery;
$(function(){
    alert($("#box").ge(0));
    alert($$("#box").width());
})

2、如果jQuery库在Base库之后引用,那么“$”所有权归jQuery所有,而Base库将会因为冲突而失去作用,在这里jQuery提供了一个方法

jQuery.noConflict();  //自我摧毁,将$所有权剔除
var $$ = jQuery;
$(function(){
    alert($("#box").ge(0));
    alert($$("#box").width());
})
时间: 2024-10-14 13:54:35

使用jquery时$符号冲突问题解决方案的相关文章

Electron与jQuery中$符号冲突的三种解决方法

在Electron工程中引用jQuery时,经常会出现以下错误: Uncaught ReferenceError: $ is not defined 解决的具体方法如下: ①.在测试的过程中(测试过1.10.1,以及当前最新的3.2.1版本都不行),发现只要使用2.03版本的jQuery或者2.2.0版本的jQuery,就不会出现$未定义的情况. ②.使用jQuery原有的关键字jQuery()来替代$(),或者自定义关键字. <script type="text/javascript&q

jQuery中 $ 符号的冲突问题

jQuery中 $ 符号的冲突问题是常见问题之一. 在jQuery中,$是jQuery的别名,为了书写方便,我们更习惯用$('#id')这一类的方式来书写代码.当同一页面引用了jQuery多个版本或者jQuery与某些其他js库产生冲突,控制台就会报错. 同一个页面多个版本冲突解决办法 你可能会问,为什么在一个页面上会引用多个版本的jQuery,只引用一个不就好了吗? 答案是:不行.一般要用到两个(或以上)版本的jQuery库的原因是:现有的网站已经用了旧版本的jQuery以及相关插件,直接将j

jQuery库(noConflict)冲突解决机制

许多的JS框架类库都选择使用$符号作为函数或变量名,而且在实际的项目开发中,使用模板语言的话有可能"$"符号即为该模板语言的关键字.例如Veclocity模板语言,$是关键字.与jQuery一起使用可能会存在冲突(页面中直接写jq代码,引入的js文件不存在该问题).吐槽下为啥这么多js库喜欢用$($ is money?). jQuery是使用$符号作为函数或变量名最为典型的一个.在jQuery中,$符号只是window.jQuery对象的一个引用,因此即使$被删除,jQuery依然能保

Jquery的$命名冲突(转)

Jquery的$命名冲突: 在Jquery中,$是JQuery的别名,所有使用$的地方也都可以使用JQuery来替换,如$('#msg')等同于JQuery('#msg')的写法.然而,当我们引入多个js库后,在另外一个js库中也定义了$符号的话,那么我们在使用$符号时就发生了冲突.下面以引入两个库文件jquery.js和prototype.js为例来进行说明. 第一种情况:jquery.js在prototype.js之后进行引入,如: <script src="prototype.js&

jQuery中$符号的作用

jQuery中$符号的作用 作为jQuery包装器,利用选择器来选择DOM元素(这个也是最强大的功能) 例如:$("table tr:nth-child(even)") 实用工具函数,作为几个通用的实用工具函数的命名空间的前缀 例如:$.trim(someString) 文档就绪处理程序,相当于$(document).ready(...) 例如:$(function(){...}); 里面的函数会在DOM树加载完之后执行 创建DOM元素 例如:$("<p>how

Jquery的$命名冲突解决

问题描述: 在Jquery库中,$是JQuery的别名,所有使用$的地方也都可以使用JQuery来替换,如$('#msg')等同于JQuery('#msg')的写法. 当引入多个js库后,其它的js库中也定义了$符号的话,就导致在使用$命名符时jquery的$和其它框架的$产生冲突(这里的冲突也和js库文件的引入顺序有关). 情况举例: // js引入顺序不同的结果 ($ 永远代表最后一个定义$的js库的符号) // --1<script src="prototype.js" t

jquery不同版本冲突导致低版本功能不能用

oConflict() 方法让渡变量 $ 的 jQuery 控制权. 该方法释放 jQuery 对 $ 变量的控制. 使用方法: var jq = $.noConflict();//转换控制权 jq(document).ready(function () { jq("#outside").click(function () {你的操作...... }); }); }); jquery不同版本冲突导致低版本功能不能用,布布扣,bubuko.com

关于eclipse复制当前行快捷键与笔记本屏幕旋转快捷键冲突的解决方案

eclipse中复制当前行快捷键是Ctrl+Alt+↑或者Ctrl+Alt+↓但是在某些笔记本上使用此快捷键效果却是屏幕上下旋转有一种可能是你的笔记本上安装了intel的显卡芯片驱动方法一:此驱动有一个控制面板,其中有一个全局快捷键设置,把快捷键修改成其他的或者直接关闭就可以解决冲突.方法二:当然,也可以修改eclipse的快捷键.方法一步骤如下: 关于eclipse复制当前行快捷键与笔记本屏幕旋转快捷键冲突的解决方案,布布扣,bubuko.com

处理jquery版本之间冲突

处理jquery版本之间冲突 前端开发们都知道jquery版本有好多,之间冲突很纠结.比如我刚来这公司的时候,后端的哥们用的是jQuery 1.3.2,我了个去,那哥们好久没更新了.我写的效果插件都是最新的jquery1.7.1.不兼容蛋疼啊,参考前人资料,看书.找到一个和平共处<script type=”text/javascript” src=”http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js”></scr