Antwort an „Rolf B“ verfassen

Hallo einsiedler,

Alles habe ich so eingesetzt wie in Deinem Beispiel. Es funktioniert einfach nicht.

Weil die Ratschläge nur halb umgesetzt hast.

(1) Ich habe Dir am 01.05.2025 um 18:12 beschrieben, wie Du das Flyout-Widget flexibel auf zwei Widgets anwendest. Das hast Du nicht getan, du wendest es unflexibel nur auf das main-nav Menü an.

(2) Du hast das <script> ans Ende verschoben, wie Gunnar vorschlug. Prima. Aber dann kann die Klammer mit DOMContentLoaded weg. Das stört zwar nicht, es ist aber überflüssig.

Entweder: Script im Head:

<script>
document.addEventListener("DOMContentLoaded", function() {
   // DOM-spezifische Initialisierung
});
</script>

Oder: Script am Ende vom Body:

<script>
   // DOM-spezifische Initialisierung
</script>

Es gibt hierbei einen kleinen Unterschied: Die Funktion des DOMContentLoaded Handlers kapselt die Variablen und Funktionen ein, die Du verwendest. Ohne die Eventhandler-Funktion sind diese Variablen und Funktionen global sichtbar. Das kann man durch eine IIFE (immediately invoked function expression, siehe Wiki ) wieder einkapseln - sofern nötig. Sofern nicht nötig, kannst Du Dir das auch sparen.

<script>
(function() {
   // DOM-spezifische Initialisierung
})();
</script>

Rolf

--
sumpsi - posui - obstruxi
freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar

Ihre Identität in einem Cookie zu speichern erlaubt es Ihnen, Ihre Beiträge zu editieren. Außerdem müssen Sie dann bei neuen Beiträgen nicht mehr die Felder Name, E-Mail und Homepage ausfüllen.

abbrechen