STIC Discussion:STIC I - exercice 3 (Concordia)
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.
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 :
- Plus compliqué : revoir l'architecture de votre code pour éviter l'effet domino
- 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