RealBluescreen
Mitglied
Ich habe ein Problem mit einer von mir selbst gebastelten Navigation.
Der Code, um den es hier geht, ist nur für die Navigation und enthält auchnicht die DOCTYPS (Strict), um das ein bisschen übersichtlicher zu machen.
Das wünsche ich mir:
Ich wollte eine Navigation erstellen, bei der die Unterpunkte mit Mausklick angezeigt werden (was auch funktioniert), bei einem weiteren klick, oder dem Klick auf eine andere Kategorie wieder verschwinden (klappt nicht).
So habe ich's gemacht:
Wenn man auf die Kategorie klickt, wird eine JS-Funktion aufgerufen.
In der wird geprüft (if...), in welchem Zustand das Menü gerade ist (aus- oder eingeklappt?).
Dann sollte es je nach dem aus- bzw. eingeklappt werden, was durch das ändern der Style-Klasse geschieht.
Auf die einzelnen Elemente wird per ID zugegriffen.
Das Problem:
Das Menü klappt auf, bleibt dann aber offen.
Die Variable, die bestimmt, ob das Menü offen oder zu ist, hat immer den Wert "zu".
Mein Vermuteter Grund:
Die Variable bleibt in der Funktion nicht gespeichert?
Hat jemand ne Idee?
Code 1: Die CSS-Styles
Code 2: Der HTML Text (im Body-Bereich, innerhalb eines DIV-Tags mit der ID="navigtion")
Code 3: Der JavaScript Container
Ich danke für deine Kompetente Hilfe!!
Der Code, um den es hier geht, ist nur für die Navigation und enthält auchnicht die DOCTYPS (Strict), um das ein bisschen übersichtlicher zu machen.
Das wünsche ich mir:
Ich wollte eine Navigation erstellen, bei der die Unterpunkte mit Mausklick angezeigt werden (was auch funktioniert), bei einem weiteren klick, oder dem Klick auf eine andere Kategorie wieder verschwinden (klappt nicht).
So habe ich's gemacht:
Wenn man auf die Kategorie klickt, wird eine JS-Funktion aufgerufen.
In der wird geprüft (if...), in welchem Zustand das Menü gerade ist (aus- oder eingeklappt?).
Dann sollte es je nach dem aus- bzw. eingeklappt werden, was durch das ändern der Style-Klasse geschieht.
Auf die einzelnen Elemente wird per ID zugegriffen.
Das Problem:
Das Menü klappt auf, bleibt dann aber offen.
Die Variable, die bestimmt, ob das Menü offen oder zu ist, hat immer den Wert "zu".
Mein Vermuteter Grund:
Die Variable bleibt in der Funktion nicht gespeichert?
Hat jemand ne Idee?
Code 1: Die CSS-Styles
Code:
.untergrnormal, .normaleinfach, .gruppenormal {
background-color:#55C;
color: #fff;
font: bold 0.94em sans-serif;
text-decoration: none;
display:block;
padding: 3px 10px;
border: 1px solid #05b;
margin: 0;
width: 165px;
-moz-border-radius:5px;
/* border-radius:5px; */
}
.normaleinfach {
background-color:#65C;
}
.untergrnormal {
background-color:#5252B5;
}
.untergruppeaus {
display:none;
}
#navigation LI {
background-color: transparent;
padding: 0;
margin: 0;
list-style: none;
width: 165px;
}
#navigation UL {
background-color: transparent;
padding: 0;
margin: 0;
}
#navigation A:link, #navigation A:visited {
border: 1px solid #333399;
}
#navigation A:hover, #navigation A:focus {
border: 1px solid #c7c88d;
}
Code 2: Der HTML Text (im Body-Bereich, innerhalb eines DIV-Tags mit der ID="navigtion")
HTML:
<li><a title="Kategorie 1" class="gruppenormal" id="gruppe1" onclick="kat1()" href="#">Kategorie 1</a><ul>
<li><a title="Unterkategorie 1-1" class="untergruppeaus" id="gruppe1a" href="#"> Unterkategorie 1.1</a></li>
<li><a title="Unterkategorie 1-2" class="untergruppeaus" id="gruppe1b" href="#"> Unterkategorie 1.2</a></li>
<li><a title="Unterkategorie 1-3" class="untergruppeaus" id="gruppe1c" href="#"> Unterkategorie 1.3</a></li>
<li><a title="Unterkategorie 1-4" class="untergruppeaus" id="gruppe1d" href="#"> Unterkategorie 1.4</a></li>
<li style="visibility:hidden;" title="Platzhalter"> </li>
</ul>
Code 3: Der JavaScript Container
Code:
function kat1() {
var gruppe1a = document.getElementById("gruppe1a");
var gruppe1b = document.getElementById("gruppe1b");
var gruppe1c = document.getElementById("gruppe1c");
if (dgruppe1 == 1) {
gruppe1a.className = "untergrnormal";
gruppe1b.className = "untergrnormal";
gruppe1c.className = "untergrnormal";
alert("1 - "+dgruppe1);
var dgruppe1 = 2;
alert("1b - "+dgruppe1);
} else if (dgruppe1 == 2) {
gruppe1a.className = "untergruppeaus";
gruppe1b.className = "untergruppeaus";
gruppe1c.className = "untergruppeaus";
alert("2 - "+dgruppe1);
var dgruppe = 1;
alert("2b - "+dgruppe1);
} else {
gruppe1a.className = "untergrnormal";
gruppe1b.className = "untergrnormal";
gruppe1c.className = "untergrnormal";
alert("3");
var dgruppe1 = 1;
}
}
Ich danke für deine Kompetente Hilfe!!