将“$”(美元符号)replace为“JQuery”

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

第一个片段

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"); }); }); 

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

许多JavaScript库使用$作为函数或variables名称,就像jQuery一样。 在jQuery的情况下,$是jQuery的别名,所以所有的function都可以不使用$。 如果我们需要和jQuery一起使用另一个JavaScript库,我们可以通过调用$ .noConflict()来将控制权返还给其他库。

你也可以创build一个全新的别名来使用

 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"); }); }); 

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