Je crée une page Web pour le travail à la maison de l'école et je fais une liste déroulante dans une navanation de navigation, pour montrer que j'utilise JavaScript et JQuery, mais cela ne fonctionne qu'une fois, je peux ouvrir la liste déroulante, mais je ne peux pas la fermer. J'ai essayé des façons de faire cela comme en utilisant uniquement JavaScript, ou à l'aide de la classe à bascule, mais il n'a pas fonctionné P>
.dropdown-content-show {
display: block;
}
.dropdown-content {
display: none;
}
3 Réponses :
Vous ne cédez jamais le premier gestionnaire de clic. Considérez la logique de ces deux lignes de code: la variable Placez la logique conditionnelle à l'intérieur du gestionnaire de clic, au lieu de créer de manière conditionnelle le gestionnaire. Quelque chose comme ceci: p> (Remarque également le retrait de Bien que logiquement, vous devriez pouvoir simplifier cela à quelque chose comme: p> x code> toujours em> égale 0 code> cette condition. Parce qu'il a été explicitement défini sur 0 code> immédiatement avant de le vérifier. P> var code> lors de la ré-attribution de la variable. Créerait une nouvelle variable dans cette portée, Ce que vous voulez.) p>
Tout d'abord, n'utilisez pas X comme un conditionnel comme ça. Au lieu d'utiliser X et de modifier sa valeur si l'utilisateur a cliqué, vous devez utiliser la méthode Fondamentalement, le code doit être traité comme celui-ci: p> C'est une amélioration décente sur votre code, mais toujours très goofy. Si vous voulez avancer à JavaScript, apprenez simplement la langue. Il n'y a pas de raccourcis comme JQuery, il suffit d'apprendre JS puis de passer à quelque chose comme réagir JS P> P> classlist.Contains () code>.
Vous devez également manipuler la condition après l'événement.
remplacer avec: p> function toggleFunction() {
var element = document.getElementById("dropdowncontent");
element.classList.toggle("dropdown-content");}
Vous avez besoin d'un gestionnaire de clic, pas deux et déplacez le
si ... sinon code> logique à l'intérieur de celui-ci, car il n'est que alors i> lorsque vous voulez faire ce chèque. Notez quetoggleclass code> facilite les choses.Vous n'utilisez pas
var code> pour affecter une valeur à une variable:var x = 1 code> ->x = 1 code> (meilleure utilisationLaissez code> /const code> au lieu devar code>)