Hallo,
das anfangs unsichtbare (Display: None) Menu auf Display: Block stellt
if (document.getElementById("menu1").style.display == "none")
Mit .style.display kannst du den aktuellen Style nur dann auslesen, wenn er vorher mit Inline-Styles gesetzt wurde.
Wenn du eine solche CSS-Regel hast:
#menu1 { display: none; }
Dann ergibt document.getElementById("menu1").style.display
einen leeren String (""
).
Du müsstest Inline-Styles verwenden:
<div id="menu1" style="display: none">…</div>
Dann wäre .style.display initial nicht leer. Das ist aber nicht so schön, die Formatierung sollte letztlich schon im Stylesheet stehen.
Siehe auch: </archiv/2014/1/t216394/#m1483732>
Noch ein weiterer Grund, eine Klasse zur Markierung und zum Umschalten der Sichtbarkeit zu verwenden.
Mathias