发布时间: 2018-09-24 13:02:52
四.解决jQuery和其他库的冲突
当一个项目中引入多个第三方库的时候,由于没有命名空间的约束(命名空间就好比同一个目录下的文件夹一样,名字相同就会产生冲突),库与库之间发生冲突在所难免。
那么,既然有冲突的问题,为什么要使用多个库呢?原因是 jQuery 只不过是 DOM 操作为主的库,方便日常 Web 开发。但有时,项目有更多特殊的功能需要引入其他的库,比如用户界面 UI 方面的库,游戏引擎方面的库等等一系列。
而很多库,比如 prototype、还有JavaScript 的 Base 库,都使用“$”作为基准起始符,如果想和 jQuery 共容有两种方法:
1.将 jQuery.js 库在 Base.js 库之前引入,那么“$”的所有权就归 Base 库所有,而 jQuery 可以直接用 jQuery 对象调用,或者创建一个“$$”符给 jQuery 使用。
var
$$ = jQuery; //创建一个$$的 jQuery对象
jQuery
$(function () { //这是
Base 的$
$
alert($('#box').ge(0)); //这是 Base 的 $
$ alert($$('#box').get()); //这是 jQuery 的$$
});
2.如果将 jQuery.js 库在 Base.js 库之后引入,那么“$”的所有权就归 jQuery 库所有,而 Base 库将会冲突而失去作用。这里,jQuery 提供了一个方法:
jQuery.noConflict();
//将$符所有权剔除
var
$$ = jQuery;
$(function
() {
alert($('#box').ge(0));
alert($$('#box').get());
});