• jquery库与其他库冲突的问题解决-jquery.noConflict()


    在使用jQuery开发的时候,可能还会使用到其他的JS库,比如Prototype,但多库共存时可能会发生冲突;若是发生冲突后,可以通过以下几种方案进行解决:
    一、 jQuery库在其他库之前导入,直接使用jQuery(callback)方法如:
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <!--先导入jQuery -->
    <script src="../../scripts/jquery-1.3.1.js" type="text/javascript"></script>
    <!--后导入其他库 -->
    <script src="prototype-1.6.0.3.js" type="text/javascript"></script>
    </head>
    <body>
    <p id="pp">test---prototype</p>
    <p >test---jQuery</p>

    <script type="text/javascript">
    jQuery(function(){ //直接使用 jQuery ,没有必要调用"jQuery.noConflict()"函数。
    jQuery("p").click(function(){
           alert( jQuery(this).text() );
    });
    });

    $("pp").style.display = 'none'; //使用prototype
    </script>
    </body>
    </html>

    二、jQuery库在其他库之后导入,使用jQuery.noConflict()方法将变量$的控制权让渡给其他库,有以下几种方式:

    <script type="text/javascript">
    jQuery.noConflict(); //将变量$的控制权让渡给prototype.js
    jQuery(function(){ //使用jQuery
           jQuery("p").click(function(){
                  alert( jQuery(this).text() );
           });
    });

    $("pp").style.display = 'none'; //使用prototype
    </script>

    //代码二
    <script type="text/javascript">
    var $j = jQuery.noConflict(); //自定义一个比较短快捷方式
    $j(function(){ //使用jQuery
           $j("p").click(function(){
           alert( $j(this).text() );
           });
    });

    $("pp").style.display = 'none'; //使用prototype
    </script>

    //代码三
    <script type="text/javascript">
    jQuery.noConflict(); //将变量$的控制权让渡给prototype.js
    jQuery(function($){ //使用jQuery
           $("p").click(function(){ //继续使用 $ 方法
           alert( $(this).text() );
           });
    });

    $("pp").style.display = 'none'; //使用prototype
    </script>

    //代码四
    <script type="text/javascript">
    jQuery.noConflict(); //将变量$的控制权让渡给prototype.js
    (function($){ //定义匿名函数并设置形参为$
           $(function(){ //匿名函数内部的$均为jQuery
                  $("p").click(function(){ //继续使用 $ 方法
                         alert($(this).text());
                  });
           });
    })(jQuery); //执行匿名函数且传递实参jQuery

    $("pp").style.display = 'none'; //使用prototype

    /*********************************************************************/
    jQuery(document).ready(function(){ //一加载页面的时候就将权利让出去
           jQuery.noConflict();
    });
    </script>

  • 相关阅读:
    读TIJ -6 类再生
    STM32 外设配置关键步骤-驱动出了问题,最好还是瞧瞧--待续
    oracle 10g 11g rac 虚拟环境切换
    UFLDL教程之(三)PCA and Whitening exercise
    VIM配置文件
    Codeforces 586D Phillip and Trains(DP)
    51Nod 1272最大距离 (树状数组维护前缀最小值)
    Codeforces 482B Interesting Array(线段树区间更新)
    Codechef Chef and Triangles(离散化+区间并集)
    POJ1655 Balancing Act(树的重心)
  • 原文地址:https://www.cnblogs.com/piuba/p/3217256.html
Copyright © 2020-2023  润新知