jQuery.noConflict()【官方使用说明】

jQuery.noConflict( [removeAll ] )Returns: Object

说明:释放对$变量及jQuery变量的控制权

  • 增加版本:1.0 jQuery.noConflict( [removeAll ] )

  • 参数名称:removeAll

  • 参数类型::Boolean
  • 参数说明:是否彻底移除jQuery对象(包括JQuery本身)

许多其他的JavaScript库使用$作为函数或变量名,与jQuery类似。在jQuery中,$仅作为jQuery的别名,因此所有功能都可以在没有其他$的情况下使用。如果需要在jQuery的同时使用另一个javascript库,可通过调用$.noConflict()将$的控制权返回释放。$的原始引用在jQuery初始化期间依然有效;noConflict()只需重置它们。

如果特殊需要加载了两个版本的jQuery(不推荐),在第二个版本调用$.noconflict(true)将全局范围的jQuery变量返回到第一个版本的变量。

<script src="other_lib.js"></script>

<script src="jquery.js"></script>

<script>

$.noConflict();

// 可以使用其他JS资源的$变量

</script>

 

在.ready()方法中对jQuery定义别名,可以避免$调用带来的冲突:

<script src="other_lib.js"></script>

<script src="jquery.js"></script>

<script>

$.noConflict();

jQuery( document ).ready(function( $ ) {

// 此处可以使用JQuery的$变量

});

// 此处可以使用其他JS的$变量

</script>

 

如果需要,还可以通过将true作为参数传递给方法来释放jQuery名称变量。很少需要这样做,如果必须这样做(例如,如果需要在同一页上使用多个版本的jQuery库),则需要考虑大多数插件依赖于jQuery变量的存在,并且在这种情况下可能无法正确操作。

示例:

将$引用的原始对象映射到$:

jQuery.noConflict();

// 使用jQuery

jQuery( "div p" ).hide();

// 其他JS资源的$()方法实现

$( "content" ).style.display = "none";

恢复$ 别名,然后创建并执行一个函数,在函数范围内提供$作为jQuery别名。 在函数内部,原始$对象不可用。 这适用于大多数不依赖于任何其他库的插件。

jQuery.noConflict();

(function( $ ) {

$(function() {

// 使用JQuery的别名$使用jQuery

});

})(jQuery);

// 其他JS资源使用$使用第三方JS资源(不冲突)

创建一个区别于jQuery的其他别名,以便在JS的其他部分使用

var j = jQuery.noConflict();

// 使用别名j来调用jQuery

j( "div p" ).hide();

// 使用其他JS资源的$()方法

$( "content" ).style.display = "none";

完全将jQuery移动到另一个对象中的新命名空间

var dom = {};

dom.query = jQuery.noConflict( true );

结果:

// 使用新的jQuery

dom.query( "div p" ).hide();

// 使用另一个JS资源的$()方法

$( "content" ).style.display = "none";

//使用另一个版本的jQuery

jQuery( "div > p" ).hide();

加载两个版本的jQuery(不推荐)。 然后,将jQuery的全局范围变量恢复到第一个加载的jQuery

<!doctype html>

<html lang="en">

<head>

<meta charset="utf-8">

<title>jQuery.noConflict demo</title>

<script src="https://code.jquery.com/jquery-1.10.2.js"></script>

</head>

<body>

<div id="log">

<h3>Before $.noConflict(true)</h3>

</div>

<script src="https://code.jquery.com/jquery-1.6.2.js"></script>

<script>

var $log = $( "#log" );

$log.append( "2nd loaded jQuery version ($): " + $.fn.jquery + "<br>" );

// Restore globally scoped jQuery variables to the first version loaded

// (the newer version)

jq162 = jQuery.noConflict( true );

$log.append( "<h3>After $.noConflict(true)</h3>" );

$log.append( "1st loaded jQuery version ($): " + $.fn.jquery + "<br>" );

$log.append( "2nd loaded jQuery version (jq162): " + jq162.fn.jquery + "<br>" );

</script>

</body>

</html>

结果:

Before $.noConflict(true)

2nd loaded jQuery version ($): 1.6.2

After $.noConflict(true)

1st loaded jQuery version ($): 1.10.2
2nd loaded jQuery version (jq162): 1.6.2

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值