`
gongstring
  • 浏览: 585795 次
  • 性别: 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.noConflict()

    jQuery.noConflict() 是jQuery库提供的一种机制,用于解决在同一个网页中使用多个jQuery版本或与其它JavaScript库可能引发的命名冲突问题。这个方法的核心在于它能够恢复全局的`jQuery`和`$`变量到它们在jQuery库...

    jquery.color.js

    - **避免冲突**:在某些情况下,可能需要使用jQuery的noConflict模式,以防止与其他库的命名空间冲突。 - **版本适配**:不同版本的jQuery.color.js可能与不同版本的jQuery存在兼容性问题,选择合适版本的插件是必要...

    jQuery用noConflict代替$的实现方法

    总的来说,`noConflict()`是jQuery为了在多库环境中保持兼容性和防止命名冲突的一个重要工具。通过正确地使用它,开发者可以灵活地管理不同库之间的依赖关系,保证代码的正常运行。在实际项目中,特别是在处理老旧...

    jquery.min.js jquery-1.4.2.min.js jquery-1.4.4.min.js jquery-1.10.2.min.js.zip

    4. **避免全局作用域污染**:通过`jQuery.noConflict()`方法,可以防止jQuery与其它使用$符号的库发生冲突。 5. **学习和掌握API**:深入理解jQuery API将有助于编写更高效、简洁的代码,提升开发效率。 综上所述...

    Sitepoint.jQuery.Novice.to.Ninja.Feb.2010.rar

    9. **jQuery.noConflict()**:对于与其他JavaScript库共存的情况,`noConflict()`方法可以释放$符号,防止命名冲突。 10. **最佳实践**:在实际开发中,合理组织代码、利用缓存提高性能、避免全局变量污染、使用$...

    JQuery的$和其它JS发生冲突的快速解决方法

    但当同时使用JQuery和其他也使用$符号的JavaScript库时,就会发生冲突。为了防止这种冲突,JQuery提供了一个解决方法,也就是jquery.noConflict()函数。本文将详细介绍如何使用JQuery的jquery.noConflict()函数以及...

    jQuery与其它库冲突的解决方法

    例如,$.ajax方法实际上是通过jQuery.ajax()来调用的,这样就避免了直接使用$可能导致的冲突。 当确实发生冲突时,jQuery提供了一个称为jQuery.noConflict()的方法,它允许你放弃$变量的控制权,这样其它库就可以...

    jQuery 美元符冲突的解决方法

    然而,当使用jQuery与其他JavaScript库(如 Prototype、MooTools 等)时,可能会遇到“美元符冲突”问题,因为这些库中也可能使用了`$`作为主要的函数调用符号。本文将深入探讨如何解决jQuery中的美元符冲突。 ### ...

    解决ecshop中使用jquery冲突问题

    标题"解决ecshop中使用jquery冲突问题"指的是如何在 ECShop 环境下,消除 jQuery 与 Prototype 之间的冲突,以便能够安全地使用 jQuery 的功能,特别是利用 jQuery 的 `$.get()` 和 `$.post()` 方法来替换原本使用 ...

    解决ECSHOP和jquery冲突问题所需文件

    3. **使用IIFE(Immediately Invoked Function Expression)**:另一种避免冲突的方法是将ECSHOP的JavaScript代码包裹在一个立即执行的函数表达式中,这样可以创建一个局部的作用域,防止全局变量污染。 4. **插件...

    jquery_api

    在存在其他JavaScript库的情况下,使用`jQuery.noConflict()`可以释放 `$` 符号,防止冲突。 总的来说,“jquery_api”文档涵盖了所有这些关键点,对于任何想学习或提升jQuery技能的开发者来说,都是一份宝贵的资源...

    jQuery中noConflict()用法实例分析

    // 在这里使用$作为jQuery的别名 }); })(jQuery); ``` 这种模式通常用于不依赖于其他库的jQuery插件。 ##### 实例3:使用简写的ready结合noConflict() 我们还可以将noConflict()方法与jQuery的简写ready函数...

    jquery源码详细中文注释(非扫描版)

    `jQuery.noConflict()`方法的作用是释放对`$`和`jQuery`的控制权,以便其他库也可以安全地使用这两个关键字。当一个项目中使用了多个JavaScript库时,这种方法是非常有用的。 #### 四、结语 这份源码注释不仅为...

    解决jquery版本冲突的有效方法

    总的来说,解决jQuery版本冲突的关键在于使用`noConflict`方法释放`$`和`jQuery`的控制权,并通过创建新的变量来保存和恢复不同版本的引用。这个策略不仅适用于jQuery 1.3.2和1.4.2,也可以灵活地应用到任何其他版本...

    transport.js

    替换(不是去掉)页面所有的$(){}函数,防止jquery不生效(解释:这一步是要替换掉原ecshop里的$(){}这个函数,因为它与jquery是冲突的,解决的办法很多,可以用其他函数代替,比如getId(){}等等,也可以用jquery本身...

    把jQuery的类、插件封装成seajs的模块的方法

    // 注意:为了防止命名冲突,使用$.noConflict()返回jQuery实例 return $.noConflict(); }); ``` 这样定义后,你可以通过`require`来引入这个模块,就像下面这样: ```javascript define(function (require, ...

    jqury 学习资料

    - 如果其他库先加载,需要调用 `jQuery.noConflict()` 来防止冲突。 5. **常用 API** - **选择器**:如 `$("#id")`, `$(".class")`, `$("tag")` 等,用于选取元素。 - **遍历**:`.each()` 方法用于循环遍历集合...

    jQuery屏蔽快捷键F1-F12

    当页面中同时加载了多个库时,如jQuery和其他使用$符号作为全局函数的库,可能会导致命名冲突。`jQuery.noConflict()`的作用就是释放jQuery对$的控制权,将其改为使用jQuery对象来调用jQuery的方法。 2. **`$...

    jQuery中noconflict函数的实现原理分解

    jQuery中,noconflict是用来防止变量冲突,用来释放变量控制权的一个重要方法。我们知道,jQuery中对外提供有两个全局变量,$和jQuery,虽然jQuery只产生了两个全局变量,极少情况下才会出现冲突,但是如果网页中...

    Jquery命名冲突解决的五种方案分享

    在JavaScript的世界里,命名冲突是一个常见的问题,尤其是在多个库或者框架并存时。JQuery,作为一个广泛使用的JavaScript库,也面临着与其他库(如Prototype...记住,良好的编程习惯和适当的模块化是防止冲突的关键。

Global site tag (gtag.js) - Google Analytics