zoukankan      html  css  js  c++  java
  • 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>

  • 相关阅读:
    Chrome V75V76新版无法存为mhtml格式解决办法
    RHEL7 的注册
    JQuery淡入淡出 banner切换特效
    怎样把小坚果做成大生意
    黄页前台联动菜单修改时不能显示,要重新选择|没样式
    V9任何页面GET调用内容分页的说明
    phpcms v9 自定义伪静态的分页函数
    phpcms v9 自定义分页 带下拉跳转
    discuz X2.5自己写代码,获取当前登录的用户信息
    discuz!X2.5技术文档
  • 原文地址:https://www.cnblogs.com/piuba/p/3217256.html
Copyright © 2011-2022 走看看