• 用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("这种情况很少见!");

  • 相关阅读:
    NOIP201208同余方程
    NOIP模拟赛 最佳组合
    NOIP模拟赛 拓展
    CF1253E Antenna Coverage(DP)
    LOJ6033「雅礼集训 2017 Day2」棋盘游戏 (博弈论,二分图,匈牙利算法)
    CF582E Boolean Function(DP,状态压缩,FMT)
    CF750G New Year and Binary Tree Paths(DP)
    Codeforces Round 596 题解
    AGC008E Next or Nextnext(组合计数,神奇思路)
    ARC082E ConvexScore(神奇思路)
  • 原文地址:https://www.cnblogs.com/yuzhongwusan/p/2245359.html
Copyright © 2020-2023  润新知