Remplacer “$” (signe dollar) par “JQuery”

Le premier extrait ne fonctionnait pas. Cependant, il commence à fonctionner lors du remplacement de tous les $ (signe dollar) par jQuery (voir 2ème extrait). Mais je ne comprends pas vraiment pourquoi? Quelqu’un peut-il m’expliquer cela? Merci beaucoup!

1er extrait

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

2ème extrait

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

C’est parce que jQuery.noConflict() “libère” le “$” de son association avec jQuery. Normalement, dans votre code, vous pouvez utiliser $ en remplacement de “jQuery”. Si vous utilisez noConflict() vous ne pouvez plus faire cela et vous devez donc remplacer chaque “$” par “jQuery”; .

De nombreuses bibliothèques JavaScript utilisent $ comme une fonction ou un nom de variable, comme le fait jQuery. Dans le cas de jQuery, $ est juste un alias pour jQuery, donc toutes les fonctionnalités sont disponibles sans utiliser $. Si nous devons utiliser une autre bibliothèque JavaScript à côté de jQuery, nous pouvons renvoyer le contrôle de $ à l’autre bibliothèque avec un appel à $ .noConflict ():

vous pouvez également créer un alias totalement nouveau à utiliser

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

L’appel de noConflict () supprime l’association entre la fonction $ et la fonction jQuery. Ceci afin que vous puissiez utiliser une autre bibliothèque JavaScript qui réduit également à $ sans conflits.