jQuery noConflict()方法

  • jQuery和其他JavaScript框架

    如果您希望在页面上使用其他框架,同时仍使用jQuery,该怎么办?
    就像你已经知道的那样; jQuery使用$ sign作为jQuery的快捷方式。
    还有许多其他流行的JavaScript框架,如:Angular,Backbone,Ember,Knockout等。
    如果其他JavaScript框架也使用$ sign作为快捷方式怎么办?
    如果两个不同的框架使用相同的快捷方式,则其中一个框架可能会停止工作。
    jQuery团队已经考虑过这个问题,并实现了noConflict()方法。
  • jQuery noConflict()方法

    noConflict()方法释放$ short标识符的hold,以便其他脚本可以使用它。
    您当然可以使用jQuery,只需编写全名而不是快捷方式:
       
                   <head>
                        <script type="text/javascript" src="jquery.js"></script>
                        <script type="text/javascript">
                        $.noConflict();
                        jQuery(document).ready(function(){
                          jQuery("button").click(function(){
                            jQuery("p").text("jQuery仍然在工作!");
                          });
                        });
                        </script>
                   </head>
    
    尝试一下
    您也可以非常轻松地创建自己的快捷方式。noConflict()方法返回对jQuery的引用,您可以将其保存在变量中以供以后使用。 这是一个例子:
       
                   <head>
                        <script type="text/javascript" src="jquery.js"></script>
                        <script type="text/javascript">
                        var jq = $.noConflict();
                        jq(document).ready(function(){
                          jq("button").click(function(){
                             jq("p").text("jQuery仍然在工作!");
                          });
                        });
                        </script>
                   </head>
    
    尝试一下
    如果你有一块使用$快捷方式的jQuery代码并且你不想全部改变它,你可以将$ sign作为参数传递给ready方法。 这允许你在这个函数中使用$访问jQuery - 在它之外,你将不得不使用“jQuery”:
       
                   <head>
                        <script type="text/javascript" src="jquery.js"></script>
                        <script type="text/javascript">
                        $.noConflict();
                        jQuery(document).ready(function($){
                          $("button").click(function(){
                            $("p").text("jQuery仍然在工作!");
                          });
                        });
                        </script>
                   </head>
    
    尝试一下
    有关所有jQuery Misc方法的完整概述,请转到我们的jQuery Misc参考手册。