`
gongstring
  • 浏览: 582765 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

用jQuery.noConflict()防止$的冲突

    博客分类:
  • Ajax
阅读更多

运行这个函数将变量$的控制权让渡给第一个实现它的那个库。这有助于确保jQuery不会与其他库的$对象发生冲突。 

在运行这个函数后,就只能使用jQuery变量访问jQuery对象。例如,在要用到$("div p")的地方,就必须换成jQuery("div p")。 

注意:这个函数必须在你导入jQuery文件之后,并且在导入另一个导致冲突的库之前使用(LuckyMien注:下划丝处说的不准确,在jQuery的新版本中,未必必须如此)。当然也应当在其他冲突的库被使用之前(LuckyMien注:这句毫无疑问是正确的),除非jQuery是最后一个导入的。 

示例: 

将$引用的对象映射回原始的对象。 

jQuery 代码: 

jQuery.noConflict(); 
// 使用 jQuery 
jQuery("div p").hide(); 
// 使用其他库的 $() 
$("content").style.display = 'none'; 

恢复使用别名$,然后创建并执行一个函数,在这个函数的作用域中仍然将$作为jQuery的别名来使用。在这个函数中,原来的$对象是无效的。这个函数对于大多数不依赖于其他库的插件都十分有效。 

jQuery 代码: 

jQuery.noConflict(); 
(function($) { 
    $(function() { 
        // 使用 $ 作为 jQuery 别名的代码 
    }); 
})(jQuery); 
// 其他用 $ 作为别名的库的代码 

创建一个新的别名用以在接下来的库中使用jQuery对象。 

jQuery 代码: 

var j = jQuery.noConflict(); 
// 基于 jQuery 的代码 
j("div p").hide(); 
// 基于其他库的 $() 代码 
$("content").style.display = 'none'; 

LuckyMien补充:jQuery.noConflict()有个deep参数,如果为true,则不仅可以防止$冲突,还可以防止jQuery这个关键词冲突。 

jQuery 代码: 

var j = jQuery.noConflict(true); 
// 基于 jQuery 的代码 
j("div p").hide(); 
// 基于其他库的 $() 代码 
$("content").style.display = 'none'; 
// 基于其他库(或版本)的 jQuery() 代码 
jQuery("#abc").html("这种情况很少见!");

分享到:
评论

相关推荐

    jquery插件冲突(jquery.noconflict)解决方法分享

    许多的 JS 框架类库都选择使用$符号作为函数或变量名,jQuery是其中最为典型的一个。在 jQuery 中,$ 符号只是 window.jQuery 对象的一个引用,因此即使 $ 被删除,window.jQuery 依然是保证整个类库完整性的坚强...

    三分钟带你玩转jQuery.noConflict()

    为了避免全局命名空间污染,jQuery提供了jQuery.noConflict()方法解决变量冲突。这个方法,毫无疑问,非常有效。遗憾的是,jQuery的官方文档对该方法的描述不够清晰,许多开发者并不清楚当他们调用jQuery.noConflict...

    轻松搞定jQuery.noConflict()

    为了避免全局命名空间污染,jQuery提供了jQuery.noConflict()方法解决变量冲突。这个方法,毫无疑问,非常有效。遗憾的是,jQuery的官方文档对该方法的描述不够清晰,许多开发者并不清楚当他们调用jQuery.noConflict...

    jSignature.min.noconflict.js

    jSignature.min.noconflict.js

    jQuery用noConflict代替$的实现方法

    js框架很多的情况下,很容易出现冲突,建议使用noConflict代替$ //消除$对jquery缩写 $.noConflict(); //使用了noConflict后,用$就会无效,应用jQuery jQuery(document).ready(function(){ console.log("sdf"); }...

    jQuery中noConflict()用法实例分析

    jQuery默认使用”$”操作符,$ 符号只是 window.jQuery 对象的一个引用,jQuery.noConflict() ,这个函数将变量$的控制权让渡给第一个实现它的那个库。这有助于确保jQuery不会与其他库的$对象发生冲突。在运行这个...

    jSignature.min.noconflict.zip

    jSignature插件

    require-angular-template:使用 jQuery.noConflict(true)(私有 jQuery)处理 angular 和 requirejs 的代码库

    require.js、angular、bootstrap 和 jQuery.noConflict(true) 基本模板 特征: 此代码包含一个 AMD 封装的引导程序版本 jQuery 仅在 require 模块中可用 随意重用和/或修改 代码灵感和来源:

    jquery手冊--jquery.chm

    undefined $.noConflict() 运行这个函数将变量$的控制权让渡给第一个实现它的那个库。 jQuery each(Function fn) 以每一个匹配的元素作为上下文来执行一个函数。 jQuery eq(Number pos) 将匹配的元素集合缩减为一...

    jquery 与NVelocity 产生冲突的解决方法

    NVelocity的$与Jquery的$发生冲突时的解决方法有以下几个: 1、 使用jQuery.noConflict。 如:var j = jQuery.noConflict(); j.ajax(); 缺点:当使用jQuery的相关插件时,会使得插件失效哦! 2、 使用jQuery代替$. 如...

    jQuery 参考手册 速查表

    $.data(ele,[key],[val])1.8- 队列控制 queue(e,[q]) dequeue([queueName]) clearQueue([queueName]) 插件机制 jQuery.fn.extend(object) jQuery.extend(object) 多库共存 jQuery.noConflict([ex])

    jquery与js函数冲突的两种解决方法

    如果您还有别的要求,想继续使用原先的$(),同时还需要与别的类库不冲突的话,还有两种解决方法 其一: 代码如下: jQuery.noConflict(); jQuery(function($) { $(“p”).click(function() //在函数内继续可以使用...

    处理jquery版本之间冲突

    大家都知道jquery版本有好多,之间冲突很纠结。 比如我刚来这公司的时候,后端的哥们用的是jQuery 1.3.2,我了个去,那哥们好久没更新了。...另外的jquery库正常使用,用$访问。 转自http://www.jqueryba.com/73.html

    javascript实现右下角提示框,支持最小化,最大化,关闭,消息多条翻页。。。完整可运行!项目中测得通过!

    javascript实现右下角提示框,支持最小化,最大化,关闭,消息多条翻页。。。完整可运行!项目中测得通过! 在页面中直接引用该JS即可。用到了jquery.需要引用jquery支持包...var $j = jQuery.noConflict(); </script>

    JQuery 1.4.1 API Reference 速查手册.chm

    $.data([el], [key], [val]) 队列控制 queue(name ,[cb|queue]) dequeue(name) clearQueue([queueName]) 插件机制 jQuery.fn.extend(object) jQuery.extend(object) 多库共存 jQuery.noConflict([ex]) 属性 ...

Global site tag (gtag.js) - Google Analytics