且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

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

更新时间:2022-08-12 18:31:16

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

    既然有冲突问题存在,为什么还要应用多个库呢?是因为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());
})