用“JQuery”替换“$”(美元符号)

时间:2011-07-19 11:23:41

标签: jquery

第一个片段无效。但是,当用 jQuery 替换所有 $ (美元符号)时,它会开始工作(请参阅第2段)。但我真的不明白为什么?任何人都可以向我解释这个吗?非常感谢!

第一个代码段

jQuery.noConflict();
               $(document).ready(function(){    
                    $("#insideTable > tbody > tr:odd").addClass("odd");
                    $("#insideTable > tbody > tr:not(.odd)").hide();
                    $("#insideTable > tbody > tr:odd").show();
                    $("#insideTable > tbody > tr.odd").click(function(){
                        $(this).next().toggle();
                        $(this).find(".arrow").toggleClass("up");
                    });

                });

第二个代码段

        jQuery.noConflict();
        jQuery(document).ready(function(){

                jQuery("#insideTable > tbody > tr:odd").addClass("odd");
                jQuery("#insideTable > tbody > tr:not(.odd)").hide();
                jQuery("#insideTable > tbody > tr:odd").show();
                jQuery("#insideTable > tbody > tr.odd").click(function(){
                    jQuery(this).next().toggle();
                    jQuery(this).find(".arrow").toggleClass("up");
                });

            });

2 个答案:

答案 0 :(得分:95)

这是因为jQuery.noConflict()“释放”“$”与jQuery相关联。通常在您的代码中,您可以使用$代替“jQuery”。如果您使用noConflict(),则不能再这样做了,所以你必须用“jQuery”替换每个“$”; 。

  

许多JavaScript库只使用$作为函数或变量名   就像jQuery一样。在jQuery的例子中,$只是jQuery的别名,所以   无需使用$即可使用所有功能。如果我们需要使用   另外一个JavaScript库和jQuery一起,我们可以返回控件   $通过调用$ .noConflict()返回到其他库:

您还可以创建一个全新的别名来使用

var myJqueryAlias = jQuery.noConflict();
myJqueryAlias(document).ready(function(){

        myJqueryAlias("#insideTable > tbody > tr:odd").addClass("odd");
        myJqueryAlias("#insideTable > tbody > tr:not(.odd)").hide();
        myJqueryAlias("#insideTable > tbody > tr:odd").show();
        myJqueryAlias("#insideTable > tbody > tr.odd").click(function(){
            myJqueryAlias(this).next().toggle();
            myJqueryAlias(this).find(".arrow").toggleClass("up");
        });

    });

答案 1 :(得分:11)

调用noConflict()会删除$和jQuery函数之间的关联。这样你就可以使用另一个JavaScript库,它也缩短为$而不会发生冲突。