Frage zu JS Code?

3 Antworten

Der code fügt auf alle Elemente mit der Klasse dropdown-toggle einen Event Listener hinzu, der dann die Klasse "active" hinzufügt, bzw. entfernt.

Wenn ein Element mit drowndown-toggle angeklickt wird, bekommt es die Klasse "active". Wenn man es noch mal anklickt wird die Klasse "active" wieder entfernt.


Trismegisto 
Beitragsersteller
 16.02.2025, 22:07

Okay dann hatte der post oben also unrecht!

Trismegisto 
Beitragsersteller
 16.02.2025, 22:06

danke! Auch an dich. ich will einfach endlich, hier im Mobile Media querry, die Dropdowns per klick öffnen können so das sie zwischen die menupnke erscheinen.

:https://codepen.io/McCoer/pen/emYpmxv

document.querySelectorAll(".dropdown-toggle")

Wählt alle Elemente aus, die die Klasse "dropdown-toggle" haben.

Anschließend wird jedem Element ein "click"-Event-Listener hinzugefügt, also eine Aktion, die beim Klicken auf das Element geschieht. Da werden folgende Aktionen zugewiesen:

event.preventDefault();

Die Standardaktion (z.B. Absenden des Formulars o.ä.) wird deaktiviert.

this.classList.toggle("active");

Die Klasse "active" wird getoggelt, also umgeschaltet. Das bedeutet, wenn das Element bereits die Klasse "active" hat, wird sie entfernt, wenn es die Klasse "active", nicht hat, bekommt es die Klasse "active" zusätzlich.

HTML-Elemente können beliebig viele Klassen haben, auf die Klasse, die zum Auswählen der Elemente benutzt wurde, hat das daher keinen Einfluss, es wird eben nur die Klasse "active" hinzugefügt oder entfernt, je nach dem, ob das Element sie zuvor hatte oder nicht. Es wird also quasi zwischen "active" und nicht "active" hin und her geschalten.

Woher ich das weiß:Berufserfahrung – Tätigkeit als Webentwickler in einer Digitalagentur

Nein, soweit ich das richtig lese nimmt er jedes Element mit der Klasse "dropdown-toggle" und fügt einen eventlistener hinzu, welcher auf einen Klick wartet und daraufhin die Klasse "active" hinzufügt.

Somit hast du dann dropdown-toggle und active an dem element.

Aber ein problem, das active verschwindet nie wieder, was wahrscheinlich nicht gewollt ist

Woher ich das weiß:Berufserfahrung – 3 Jahre Web Entwicklung

Trismegisto 
Beitragsersteller
 16.02.2025, 21:24

verschwindet das active nciht wieder auf weiterem klicken hin?

Trismegisto 
Beitragsersteller
 16.02.2025, 21:23

ich will einfach endlich, hier im Mobile Media querry, die Dropdowns per klick öffnen können so das sie zwischen die menupnke erscheinen.

:https://codepen.io/McCoer/pen/emYpmxv

TheStalker64  16.02.2025, 22:27
@Trismegisto

Am einfachsten machst du's gefolgt:

Du setzt einen eventlistener an jedes dropdown. Das scheinst du soweit richtig gemacht zu haben. Das kannst du ggf sonst auch testen indem du ein console.log einbaust in dem eventlistener.

Innerhalb des eventlisteners setzt du dann bspw. Ein active an dieses dropdown, sofern keins existiert. Sofern eins existiert entfernst du's.

Beim CSS musst du dann noch die Elemente innerhalb des dropdowns verstecken und anzeigen, Jenachdem obs innerhalb eines dropdowns mit der Klasse active ist.

Trismegisto 
Beitragsersteller
 16.02.2025, 23:14
@TheStalker64

Ich hab's endlich geschafft....wie erschöpfend...aber nun beherrsche ich das ganze und das auf meiner Meinung nach einfachster Weise wie es möglich ist...ich hoffe es lohnt sich später mich da durch zu quälen. Danke dir!