54 votes

Remplacer "$" (signe dollar) par "JQuery"

Le 1er extrait ne fonctionnait pas. Cependant, cela commence à fonctionner lors du remplacement de tout $ (signe dollar) par jQuery (voir 2e 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");
                    });

                });
 

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

            });
 

100voto

Nicola Peluchetti Points 38948

C'est parce que jQuery.noConflict() "libère" le "$" étant associés avec jQuery. Normalement, dans votre code, vous pouvez utiliser $ en remplacement de "jQuery". Si vous utilisez noConflict (), vous ne pouvez pas faire cela et plus si vous avez à remplacer chaque "$" par "jQuery"; .

Beaucoup de bibliothèques JavaScript utiliser $ comme une fonction ou une variable de nom, juste que jQuery n'. JQuery dans le cas d'espèce, $ n'est qu'un alias pour jQuery, donc toutes les fonctions sont disponibles sans l'aide de $. Si nous avons besoin d'utiliser une autre librairie JavaScript côté de jQuery, nous pouvons rendre le contrôle de $ le dos à l'autre de la bibliothèque avec un appel à l' $.noConflict():

vous pouvez également créer un tout nouvel alias pour l'utilisation de

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

    });

12voto

shanethehat Points 11566

L'appel de noConflict () supprime l'association entre $ et la fonction jQuery. Cela vous permet d'utiliser une autre bibliothèque JavaScript qui se réduit également à $ sans conflit.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X