0
votes

JavaScript et jQuery Script changent que la classe une fois

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;
}


2 commentaires

Vous avez besoin d'un gestionnaire de clic, pas deux et déplacez le si ... sinon logique à l'intérieur de celui-ci, car il n'est que alors lorsque vous voulez faire ce chèque. Notez que toggleclass facilite les choses.


Vous n'utilisez pas var pour affecter une valeur à une variable: var x = 1 -> x = 1 (meilleure utilisation Laissez / const au lieu de var )


3 Réponses :


0
votes

Vous ne cédez jamais le premier gestionnaire de clic. Considérez la logique de ces deux lignes de code: xxx

la variable x toujours égale 0 cette condition. Parce qu'il a été explicitement défini sur 0 immédiatement avant de le vérifier.

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: xxx

(Remarque également le retrait de var lors de la ré-attribution de la variable. Créerait une nouvelle variable dans cette portée, Ce que vous voulez.)

Bien que logiquement, vous devriez pouvoir simplifier cela à quelque chose comme: xxx


0 commentaires

0
votes

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 classlist.Contains () . Vous devez également manipuler la condition après l'événement.

Fondamentalement, le code doit être traité comme celui-ci: xxx

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


0 commentaires

0
votes

remplacer xxx pré>

avec: p>

function toggleFunction() {
var element = document.getElementById("dropdowncontent");
element.classList.toggle("dropdown-content");}


0 commentaires