IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Vérifier si on appui sur le même bouton


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2023
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2023
    Messages : 2
    Par défaut Vérifier si on appui sur le même bouton
    Bonjour à tous,

    J'ai un petit soucis avec des boutons.
    J'ai mis toutes les planètes du systèmes solaires dans la même fonctions pour un appel d'api.
    Quand je clique par exemple sur Saturne, ça affiche ses informations, et si je clique de nouveau sur le même bouton, ça efface les infos/ferme le bouton. Jusqu'à la toit va bien.
    Par contre le soucis, c'est quand je clique sur une autre planète, ça efface aussi le texte de Saturne, alors que je voudrais que les informations de mercure par exemple remplace celles de Saturne.

    J'ai beau chercher, je ne vois pas comment faire.

    Si quelqu'un à la solution je suis preneur, merci.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    var texteAfficher = false
    var texteAfficher2 = false
    var texteAfficher3 = false
     
    async function planetInfo(planetName) {
      const response = await fetch(`https://api.le-systeme-solaire.net/rest/bodies/${planetName}`);
      const infos = await response.json();
      if (texteAfficher == false) {
          console.log(infos);
        // document.querySelector("#informations")
        var container = document.getElementById("informations");
        container.innerHTML = "";
        container.innerHTML += `<p>${infos.name}</p>`;
        container.innerHTML += `<p>Année: ${infos.sideralOrbit} jours</p>`;
        container.innerHTML += `<p>Jour: ${infos.sideralRotation} heures</p>`;
        container.innerHTML += `<p>Rayon: ${infos.equaRadius} km</p>`;
        texteAfficher = true
      } else if(texteAfficher &&) {
        texteAfficher = false;
        var container = document.getElementById("informations");
        container.innerHTML = "";
      }
      // console.log(texteAfficher)
    }
     
    async function moonInfo(moonName) {
      if (texteAfficher3 == false) {
        const response = await fetch(`https://api.le-systeme-solaire.net/rest/bodies/${moonName}`);
        const infos = await response.json();
        var container = document.getElementById("informations");
        container.innerHTML = "";
        // console.log(infos);
        container.innerHTML += `<p>${infos.name}</p>`;
        container.innerHTML += `<p>Rayon: ${infos.equaRadius} km</p>`;
        texteAfficher3 = true
      } else if (texteAfficher3) {
        texteAfficher3 = false;
        var container = document.getElementById("informations");
        container.innerHTML = "";
      }
    }
     
    async function starInfo(starName) {
      if (texteAfficher2 == false) {
        const response = await fetch(`https://api.le-systeme-solaire.net/rest/bodies/${starName}`);
        const infos = await response.json();
        var container = document.getElementById("informations");
        container.innerHTML = "";
        // console.log(infos);
        container.innerHTML += `<p>${infos.name}</p>`;
        container.innerHTML += `<p>Rayon: ${infos.equaRadius} km</p>`;
        texteAfficher2 = true;
      } else if(texteAfficher2) {
        texteAfficher2 = false;
        var container = document.getElementById("informations");
        container.innerHTML = "";
      }
    }

  2. #2
    Membre Expert
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 498
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 498
    Par défaut
    salut, utilise la balise [code] pour y mettre ton code... on ne voit rien sur ta photo
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  3. #3
    Nouveau candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2023
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2023
    Messages : 2
    Par défaut
    autant pour moi, c'est fait.

  4. #4
    Membre Expert
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2005
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 644
    Par défaut
    Salut,
    Si tout s'efface sans aucun affichage, c'est que tu remplis la condition du else if.... et donc que texteafficher est à true !
    Donc lors du changement de bouton, il faut que tu reprennes ton code de manière à ce que texteafficher soit à false...

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    au temps pour moi


    On ne voit pas le HTML lié ...

    En particulier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var container = document.getElementById("informations");
    on ne sait pas ce que tu vides
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  6. #6
    Membre chevronné Avatar de ASCIIDEFOND
    Homme Profil pro
    Autodidacte
    Inscrit en
    Novembre 2002
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Autodidacte

    Informations forums :
    Inscription : Novembre 2002
    Messages : 235
    Par défaut
    Salut alexandre1219,

    Une méthode comme ça ?
    Tu remplaces par le nom de la planète comme valeur de l’attribut data-infos pour interroger l’api.

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    <!DOCTYPE html>
    <html lang="fr">
     
    <head>
      <meta http-equiv="content-type" content="text/html;charset=utf-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <style>
        .buttonsystemsolaire {
          display: block;
          width: 150px;
          height: 26px;
          margin-bottom: 10px;
          font-size: 1em;
        }
     
        #citation {
          display: inline-block;
          width: 100%;
          font-size: 1.5em;
          color: #0000ff;
          text-align: center;
        }
      </style>
     
    </head>
     
    <body>
      <button class="buttonsystemsolaire"
        data-infos="Mercure est la planète la plus proche du Soleil (58 000 000 km de distance)">Mercure</button>
      <button class="buttonsystemsolaire"
        data-infos="Vénus est la deuxième planète la plus proche du Soleil dans notre système solaire. C'est également la plus chaude (il y fait plus de 470°)">Vénus</button>
      <button class="buttonsystemsolaire"
        data-infos="La Terre est la troisième planète la plus rapprochée du Soleil dont elle est distante de 150 millions de km.">Terre</button>
      <button class="buttonsystemsolaire"
        data-infos="Mars est la quatrième planète de notre système solaire en partant du Soleil. Elle se situe juste après Mercure par rapport à sa taille.">Mars</button>
      <button class="buttonsystemsolaire"
        data-infos="Jupiter est la cinquième planète de notre système solaire et aussi la plus grande. Son nom vient du plus grand des dieux de la mythologie romaine.">Jupiter</button>
      <button class="buttonsystemsolaire"
        data-infos="Saturne est, après Jupiter, la deuxième plus grande planète du système solaire.">Saturne</button>
      <button class="buttonsystemsolaire"
        data-infos="Uranus est la septième planète du système solaire et la troisième plus grande après Saturne.">Uranus</button>
      <button class="buttonsystemsolaire"
        data-infos="Neptune est la huitième et dernière planète du système solaire, la plus éloignée du soleil et la cinquième en grandeur après la Terre.">Neptune</button>
     
      <cite id="citation"></cite>
     
      <script>
        var buttonsystemsolaire = document.getElementsByClassName('buttonsystemsolaire')
     
        for (const buttonSelect of buttonsystemsolaire) {
          buttonSelect.addEventListener("click", () => {
            document.getElementById('citation').innerText = buttonSelect.getAttribute('data-infos')
          })
        }
     
      </script>
    </body>
     
    </html>

  7. #7
    Membre expérimenté
    Homme Profil pro
    OoW
    Inscrit en
    Juin 2019
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Ukraine

    Informations professionnelles :
    Activité : OoW

    Informations forums :
    Inscription : Juin 2019
    Messages : 150
    Par défaut
    \ô/
    surprenant cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      } else if(texteAfficher &&) { // tu dois avoir une erreur
    erreur de copie ?

    Bizarre également tes duplications de fonctions, peut-être nous dire ce que tu souhaites réaliser et la structure utilisée, autant de boutons que de planètes ?

Discussions similaires

  1. Empêcher l'appui sur la même touche deux fois
    Par Devilju69 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 17/07/2014, 10h33
  2. [ZF 1.10] affichage de lisrte déroulante lors d'un appui sur un radio bouton
    Par Jimmy72_ dans le forum Zend Framework
    Réponses: 1
    Dernier message: 19/05/2011, 22h31
  3. 2 actions sur un même bouton
    Par vince29 dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 13/04/2011, 16h39
  4. [WB9] Problèmes hajoute et hmodifie sur le même bouton
    Par Phoenix333 dans le forum WebDev
    Réponses: 1
    Dernier message: 24/07/2009, 09h27
  5. Rendre un bouton disabled (deux actions sur le même bouton)
    Par beegees dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 11/11/2008, 10h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo