怎么解决jQuery和其它库的冲突

 我来答
杜书双Qa
推荐于2016-05-11 · 超过53用户采纳过TA的回答
知道答主
回答量:104
采纳率:0%
帮助的人:126万
展开全部
全局的对象都很好地存储在jQuery命名空间里,因此当把jQuery和其它javascript类库一起使用时,不会引起冲突.(注意:默认情况下,jQuery用$作为自身的缩写而以) 如果jQuery类库和别的类库冲突的话,可以使用jQuerynoConflict()函数来将变量$的控制权移交出给其它的javaScipt库。看下面小片断代码 假设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"); $("div").click(function() {//继续使用$()方法 alert($("cr")); //使用的是jsCOM.js类库中的$()函数第二种方法应该是兼容旧的代码最好的方式,修改的代码是最少的!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式