Partage
  • Partager sur Facebook
  • Partager sur Twitter

Création d'un switch de language

mais ça ne fonctionne pas :(

Sujet résolu
Anonyme
    17 juin 2021 à 1:06:55

    Bonjour/Bonsoir à vous,

    J'essaye de faire un switch de language sur mon site mais ça ne fonctionne pas... et malheureusement je ne trouve pas mon erreur :/

    Voici l'html :
    <div class="lang_switcher" value="en" language="fr">
       <div class="tooltip">English</div>
    </div>
    <div class="lang_switcher" value="fr" language="en">
       <div class="tooltip">Français</div>
    </div>
    Voici le jquery :
    // Switch language
            $(function(){
    
                $('[language]').hide();
                $('[language="fr"]').show();
    
                $('.lang_switcher').click(function(){
                    var lang = $(this).val();
    
                    switch (lang) {
                        case 'en':
                            $('[language]').hide();
                            $('[language="en"]').show();
                        break;
                        case 'fr':
                            $('[language]').hide();
                            $('[language="fr"]').show();
                        break;
                    }
                });
            });


    Petite note à savoir, la class "lang_switcher" est un drapeau, et selon la value attribuée, le css choisis le drapeau à mettre^^

    Merci par avance de votre aide :)


    --------------- EDIT -------------------------------

    Je viens de trouver mon erreur !

    J'ai remplacé la variable, "val()" > "attr('value')"

    -
    Edité par Anonyme 17 juin 2021 à 1:11:24

    • Partager sur Facebook
    • Partager sur Twitter
      17 juin 2021 à 8:28:33

      Bonjour,

      l'attribut "value" n'a rien à faire sur une div - c'est pour ça que .val() ne marchait pas, je suppose.

      Utilise plutôt "data-value", afin d'utiliser un attribut "data-*", qui sera valide sur n'importe quel élément. À noter qu'il serait encore plus propre de prendre un <button type="button"> plutôt qu'une <div>.

      • Partager sur Facebook
      • Partager sur Twitter

      Pas d'aide concernant le code par MP, le forum est là pour ça :)

      Anonyme
        23 août 2021 à 14:04:59

        Lamecarlate a écrit:

        Bonjour,

        l'attribut "value" n'a rien à faire sur une div - c'est pour ça que .val() ne marchait pas, je suppose.

        Utilise plutôt "data-value", afin d'utiliser un attribut "data-*", qui sera valide sur n'importe quel élément. À noter qu'il serait encore plus propre de prendre un <button type="button"> plutôt qu'une <div>.


        Hello,

        Merci du conseil pour l'attribut "data-..." qui est effectivement plus propre.
        Pour le <button type="button">, dans mon cas ce n'est pas envisageable pour d'autres raisons mais oui je suis d'accord.^^
        • Partager sur Facebook
        • Partager sur Twitter
          23 août 2021 à 17:42:16

          Tiens, par curiosité, quelles sont les raisons qui t'empêchent d'utiliser un button ? (sans jugement, hein, vraiment juste de la curiosité)
          • Partager sur Facebook
          • Partager sur Twitter

          Pas d'aide concernant le code par MP, le forum est là pour ça :)

          Création d'un switch de language

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown