Nein, kommen keine Fehler. Danach habe ich schon geschaut.
Da muss was am Aufruf falsch sein, obwohl der eigentlich richtig ist o.O
Code:
function mShow(e)
{
if (!e.getElementsByTagName) {
return;
}
// Alle Listen im Menü:
var subLists = e.parentNode.getElementsByTagName("ul");
// Erstmal alle Untermenüs ausblenden, die nicht zum geklickten Eintrag gehören:
for (var i = 0; i < subLists.length; i++) {
if (subLists[i].parentNode !== e) {
subLists[i].style.display = "none";
}
}
// Das Untermenü des geklickten Eintrags einblenden:
var obj = e.getElementsByTagName("ul");
e.getElementsByTagName("ul")[0].style.display = "block";
for (var i = 0; i < obj.length; i++) {
obj[0].childNodes[i].style.display = "block";
}
}
//-->
Selbst wenn ich auf die einzelnen Childnodes des UL zugreife kommt nichts anderes heraus ... auch tagName oder length geht nicht aufzurufen ...
Mmh, irgendwo lag da ein Fehler. Hab die Funktion nochmal umgeschrieben und bin die Struktur von oben nach unten nochmal gegangen ... so klappt es jetzt:
Code:
function mShow(e)
{
if (!e.getElementsByTagName) {
return;
}
// Alle Listen im Menü:
var subLists = e.parentNode.getElementsByTagName("ul");
// Erstmal alle Untermenüs ausblenden, die nicht zum geklickten Eintrag gehören:
for (var i = 0; i < subLists.length; i++) {
if (subLists[i].parentNode !== e) {
subLists[i].style.display = "none";
}
}
// Das Untermenü des geklickten Eintrags einblenden:
var mnu = document.getElementById('menu');
var toplis = mnu.getElementsByTagName('li');
for (var it = 0; it < toplis.length; it++)
{
var sublis = toplis[it].getElementsByTagName('li');
for (var is = 0; is < sublis.length; is++)
if (sublis[is].style)
sublis[is].style.display = (toplis[it] == e) ? 'block' : 'none';
}
}
//-->
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.