JQuery noConflict()(名称冲突问题)
Posted yachjin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JQuery noConflict()(名称冲突问题)相关的知识,希望对你有一定的参考价值。
一、noConflict()方法释放JQuery库对$变量的控制权,可以为jQuery 变量规定新的自定义名称。
二、在某些情况下,可能有必要在同一个页面中使用很多个javascript库。由于很多库都使用 $
标识符(因为它简短方便),因此就需要一种方式来避免名称冲突。为解决这个问题,jQuery提
供了一个 jQuery.noConflict() 方法,调用该方法可以把对 $标识符的控制权让渡还给其他库。使
用jQuery.noConflict() 方法的一般模式如下:
<script src="prototype.js"></script>
<script src="jquery.js"></script>
<script>
jQuery.noConflict();
</script>
<script src="myscript.js"></script>
首先,包含jQuery之外的库(这里是Prototype)。然后,包含jQuery库,取得对 $ 的使用
权。接着,调用 .noConflict() 方法让出 $ ,以便将控制权交还给最先包含的库(Prototype)。
这样就可以在自定义脚本中使用两个库了——但是,在需要使用jQuery方法时,必须记住要用
jQuery而不是 $ 来调用。
在这种情况下,还有一个在 .ready() 方法中使用 $ 的技巧。我们传递给它的回调函数可以
接收一个参数——jQuery对象本身。利用这个参数,可以重新命名 jQuery为 $ ,而不必担心造
成冲突,如下面的代码所示:
jQuery(document).ready(function($) {
//在这里,可以正常使用!
});
或者,也可以使用刚刚介绍的简写语法:
jQuery(function($) {
//使用$的代码
});
三、也可以将$.noConflict()赋给一个变量。
var jq=$.noConflict();
jq(document).ready(function(){
//使用jq的代码 如: jq(‘body > div‘).addClass(‘frames‘);
})
以上是关于JQuery noConflict()(名称冲突问题)的主要内容,如果未能解决你的问题,请参考以下文章
Mailchimp 的 $mcj = jQuery.noConflict(true) 导致冲突