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>

  • 相关阅读:
    深入Java虚拟机(4)——网络移动性
    安装ftp碰到的问题及解决方法
    6.设置ListView的Item的高度无效
    hdu1181(变形课)
    ZooKeeper分布式集群部署及问题
    管理线程之创建线程
    Linux系统编程——多线程实现多任务
    Request.Params用法,后台接收httpget参数
    resharper警告 :linq replace with single call to FirstOrDefault
    SQL Prompt几个快捷键
  • 原文地址:https://www.cnblogs.com/piuba/p/3217256.html
Copyright © 2011-2022 走看看