zoukankan      html  css  js  c++  java
  • 用jQuery.noConflict()防止$的冲突

    jQuery.noConflict()函数,

    运行这个函数将变量$的控制权让渡给第一个实现它的那个库。这有助于确保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("这种情况很少见!");

  • 相关阅读:
    NOJ 1116 哈罗哈的大披萨 【淡蓝】 状态压缩DP
    优先队列原理与实现【转】
    testC-I
    济南NOIP冬令营 选拔(select)
    P4747 D’s problem(d)
    P4746 C’s problem(c)
    P4745 B’s problem(b)
    P4744 A’s problem(a)
    [bzoj] 1004: [HNOI2008]Cards
    NOIP2013 表达式求值
  • 原文地址:https://www.cnblogs.com/yuzhongwusan/p/2245359.html
Copyright © 2011-2022 走看看