Montrer des éléments html
Le texte des théorèmes dans le code ci-dessous est caché au départ. Votre mission est d'ajouter le code d'un script qui permette de déclencher l'affichage du texte d'un théorème lors d'un clic sur le nom du théorème.
click Le texte des théorèmes dans le code ci-dessous est caché au départ. Votre mission est d'ajouter le code d'un script qui permette de déclencher l'affichage du texte d'un théorème lors d'un clic sur le nom du théorème.
Un code possible :
On utilise querySelector pour sélectionner l'élément de classe titre
dans chacun des théorèmes. Pour sélectionner dans chacun des théorèmes, on n'utilise pas
document.querySelector mais theoremes[i].querySelector.
Dans le code ci-dessous :
Copiez et collez ce texte dans un fichier html vierge pour vos tests.
Page solution (rappel: clic droit, code source de la page pour voir le code).
Dans la page proposée comme solution, vous aurez sans doute remarqué la nécessité de deux clicks sur un titre pour afficher le texte correspondant. Pourquoi?
La raison est que textes[i].style.display est en fait au départ non affecté. Au
premier click, le test dans if(textes[i].style.display == "none") est donc à false
et c'est donc la partie else qui s'exécute (textes[i].style.display = "none";), au second click
la valeur
de textes[i].style.display est donc bien "none".
Pour en savoir plus vous pouvez par exemple lire
cette page du cours OpenClassRoom. Vous y découvrirez qu'une solution possible pour résoudre ce problème
est d'utiliser getComputedStyle().
Voir par exemple le code de cette page
qui règle le problème avec getComputedStyle().