STIC Discussion:STIC I - exercice 3 (Concordia)

De EduTech Wiki
Aller à la navigation Aller à la recherche

Fonction alert qui s'affiche de plus en plus -- Sebastien C. (discussion) 22 novembre 2022 à 16:24 (CET) -- Sebastien C. (discussion) 22 novembre 2022 à 16:24 (CET)

Bonjour,

Cela fait maintenant trop de temps que je cherche une solution seul, alors je fais appel à vous.

J'essaie de faire un Quizz. Celui-ci fonctionne plutôt bien. Mais j'ai décidé de créer une alerte pour dire si la réponse sélectionnée est juste ou fausse.

Mon problème est que l'alerte s'affiche 1 fois puis 2 puis 3 puis 4 puis 5 puis 6 etc. C'est dérangeant.

Mon quizz est sur ce lien.

voilà la photo de mon javascipt , mon but est que quand on appuie sur "suivant", l'alerte annonce si la réponse est juste ou fausse.

Photo javascript.png


Avez-vous une solution pour que l'alerte s'affiche qu'une fois ?

Je vous remercie pour votre aide, belle soirée

Sébastien

Réponse -- Mattia A. Fritz (discussion) 22 novembre 2022 à 17:27 (CET)

Bonjour,

Ce n'était pas simple à comprendre en effet, mais pour la manière dont vous avez conçu votre code, votre bouton "next" reçoit plusieurs addEventListeners qui se cumulent. En effet, vous ajoutez un event listener à la ligne 186 et puis encore à la ligne 159. Dans l'event listener de la ligne 186, vous appelez en plus la fonction qui a son interne l'ajoute du event listener de la ligne 159. C'est cela qui crée l'effet domino.

Vous avez à mon avis deux options :

  1. Plus compliqué : revoir l'architecture de votre code pour éviter l'effet domino
  2. Plus pragmatique : vous remplacez l'alert avec le changement d'un texte dans le DOM. Ceci présente deux avantages : (1) sur le plan du fonctionnement, même si vous lancez l'instruction pour mettre à jour le texte plusieurs fois, l'utilisateur ne va pas s'en apercevoir ; et (2) sur le plan ergonomique les alerts sont à éviter, donc cela améliore aussi le UX de votre application.

J'espère que la réponse puisse vous être utile, Mattia


Retour

Bonjour,

Merci pour le retour si rapide :D

J'ai changé pour afficher du texte est effectivement ça ne se voit plus.

Règle n° 1 : Cerner le problème pour le contourner. c'est noté

Bonne journée