避免jQuery名字冲突--noConflict()方法

众所周知,在jQuery语法中,$符号是jQuery的简写方式。但在某些情况下,可能需要在同一个页面引入其他javascript库(比如Prototype)。因为$简短方便,很多的库也是使用$符号。为了避免名称冲突,jQuery提供了noConflict()方法来解决这个问题。调用该方法可以把对$标识符的控制权让给其他库。

  一般模式:

<script src="prototype.js"></script>//1.包含jQuery之外的库(比如Prototype)
<script src="jquery.js"></script>//2.包含jQuery库取得对$的使用权
<script>
    jQuery.noConflict();//3.调用noConflict()方法,让出$,把控制权让给最先包含的库
</script>
<script src="myscript.js"></script>

让出$控制权后,需要使用jQuery方法时,则不能用$来调用了,要用jQuery。或者通过定义新的名称来代替$符号。

var jq=jQuery.noConflict();

另外还有一个技巧,可以再.ready()方法中使用$。它的回调函数可以接收一个参数,这个参数为jQuery对象本身,可以重新命名jQuery为$,这样也是不会造成冲突的。

jQuery.(document).ready(function($){
   //这里可以正常使用$
})

当然,简写方式也是可以的

jQuery(function($){
   //这里可以正常使用$
})
时间: 2024-08-25 08:19:00

避免jQuery名字冲突--noConflict()方法的相关文章

jQuery$命名冲突问题解决方法

也许你在看此文章之前还不知道jquery有一个noConflict()东西了,它就是为了避免与其它js插件碰到相同变量的一个解决方法,利用noConflict()可以把变量存到其它指定的变量中去如,我把$存到jq中 代码如下 复制代码 var jq = $.noConflict(); 这样我们在所有页面都可以使用jq而不是$了(www.111cn.net) 例 代码如下 复制代码 var jq = $.noConflict(); jq(document).ready(function(){ jq

JQuery:通过noConflict()方法同时使用jQuery 和其他框架

jQuery - noConflict()方法 一.如何在页面上同时使用 jQuery 和其他框架?jQuery 和其他 JavaScript 框架正如您已经了解到的,jQuery 使用 $ 符号作为 jQuery 的简写.如果其他 JavaScript 框架也使用 $ 符号作为简写怎么办?其他一些 JavaScript 框架包括:MooTools.Backbone.Sammy.Cappuccino.Knockout.JavaScript MVC.Google Web Toolkit.Googl

jQuery中noConflict()机制的冲突解决方法

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

jQuery之noConflict() 方法

jQuery 核心 - noConflict() 方法,运行这个函数将变量 $ 的控制权让渡给第一个实现它的那个库.这有助于确保jQuery不会与其他库的$对象发生冲突. noConflict() 方法源码: noConflict: function( deep ) { if ( window.$ === jQuery ) { window.$ = _$; } if ( deep && window.jQuery === jQuery ) { window.jQuery = _jQuery

jQuery 核心 - noConflict() 方法

摘录自W3School>> jQuery 核心参考手册 实例 使用 noConflict() 方法为 jQuery 变量规定新的名称: var jq=$.noConflict(); 定义和用法 noConflict() 方法让渡变量 $ 的 jQuery 控制权. 该方法释放 jQuery 对 $ 变量的控制. 该方法也可用于为 jQuery 变量规定新的自定义名称. 提示:在其他 JavaScript 库为其函数使用 $ 时,该方法很有用. 语法 jQuery.noConflict(remo

在同一个页面施用多个不同的jQuery版本而不冲突的方法

jquery自诞生以来,版本越来越多,而且jQuery官网的新版本还在不断的更新和发布中,但是我们在以前的项目中就已经使用了旧版本的jQuery,比如已经出现的:1.3.X.1.4.X.1.5.X.1.6.2等等. 之前在修改前台页面的时候,就碰到过这样的问题,我用的是最新的jQuery版本,之前程序用的是老的jQuery库,因为这次是修改不是重做,所以我们弄了好久两个版本都没办法共存,最后只能二选一,修改写好的js,今天在网上看到一个让不同jQuery版本共存不冲突的方法,分享一下. 其实,利

jQuery - noConflict() 方法

jQuery - noConflict() 方法 如何在页面上同时使用 jQuery 和其他框架? jQuery 和其他 JavaScript 框架 正如您已经了解到的,jQuery 使用 $ 符号作为 jQuery 的简写. 如果其他 JavaScript 框架也使用 $ 符号作为简写怎么办? 其他一些 JavaScript 框架包括:MooTools.Backbone.Sammy.Cappuccino.Knockout.JavaScript MVC.Google Web Toolkit.Go

jQuery库冲突

jQuery库冲突解决办法 一次面试中面试官问到jQuery和别的库冲突怎么解决?虽然以前看过,但是我已经不记得了. 我的思路就是如果让我来设计,那我就用一个默认值$,不传参数,那就用$,最后就挂载在window.$上,传参数就用传入名字,比如传入jq,那我就挂载在window.jq上. var myControl="jq"; (function(name){ var $=name ||"$"; //name存在$的值就是name的值,不存在或为null,$的值为字

JQuery 名称冲突

jQuery 名称冲突 jQuery 使用 $ 符号作为 jQuery 的简介方式. 某些其他 JavaScript 库中的函数(比如 Prototype)同样使用 $ 符号. jQuery 使用名为 noConflict() 的方法来解决该问题. var jq=jQuery.noConflict(),帮助您使用自己的名称(比如 jq)来代替 $ 符号. 实例 使用 noConflict() 方法为 jQuery 变量规定新的名称: var jq=$.noConflict(); 亲自试一试 定义