Hallo Rolf,
mir fällt an deinem Problem auch noch auf, dass es teils sehr unübersichtlich ist, außerdem ist das verwendete javascript irgendwie ziemlich umständlich, vor allem mit den try-except kontrollen, daher hab ich mal kurz deinen code soweit gesäubert, wie ich es spontan für gut hielt, und dir eine js-funktion geschrieben, die schneller und kleiner ist,
hier erstmal das html (etwas gekürzt):
<div id="navigation">
<ul class="main_menu">
<li class="main_menu"><a href="#startseite">Startseite</a></li>
<li class="main_menu"><a href="#mannschaften">Mannschaften</a>
<ul>
<li>Herren 1</li>
<li>...</li>
</ul>
</li>
<li class="main_menu"><a href="#handballriege">Handballriege</a>
<ul>
<li>Vorstand</li>
<li>...</li>
</ul>
</li>
<li class="main_menu"><a href="#agenda">Agenda</a></li>
<li class="main_menu"><a href="#berichte">Berichte</a></li>
<li class="main_menu"><a href="#events">Events</a>
<ul>
<li>Schülerturnier</li>
<li>...</li>
</ul>
</li>
<li class="main_menu"><a href="#sponsoring">Sponsoring</a></li>
<li class="main_menu"><a href="#services">Services</a>
<ul>
<li>Gästebuch</li>
<li>...</li>
</ul>
</li>
<li class="main_menu"><a href="#kontakt">Kontakt</a></li>
</ul>
<script type="text/javascript">
menu();
</script>
</div>
und dann dazu noch die js-funktion, die das alles steuert:
function menu(){
var li = document.getElementById('navigation').getElementsByTagName('li'), i = li.length, sub, active = null;
for(;i--;)
if((sub = li[i].getElementsByTagName('ul')[0]) != undefined){
sub.style.display = 'none';
li[i].onclick = function(){
if(active) active.style.display = 'none';
var tmp = this.getElementsByTagName('ul')[0];
tmp.style.display = '';
active = tmp;
return false;
};
}
};
Übrigens kannst du die umlaute auch ruhig ausschreiben, heutzutage sollte es da eigentlich keine großen probleme mehr geben, wenn man das dokument korrekt abspeichert und im head den charset angibt, in welchem das dokument angezeigt werden soll:
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
und somit tschüss