Wenn du es geschickt anstellst, ist das Menü auch ohne Javascript voll nutzbar. :) Zum Beispiel, indem du die eingeklappten Elemente zunächst voll sichtbar definierst und erst mit Hilfe von Javascript versteckst. Sollte jemand Javascript ausgeschaltet haben, so sind die Element eben sofort sichtbar. Per Tastatur lässt sich das Menü dann auch wunderbar bedienen.
Zu onclick: Du kannst einem Link trotzdem eine URL zuweisen und diese per Javascript sperren, damit stattdessen das Untermenü aufgeklappt wird.
Ich bin der Ansicht, dass das die Usability mehr steigert, als die gesamte Seite jedes Mal zwecks Aus- und Einklappen vollständig neu zu laden.
Zu deiner Frage:
Wozu baust du Divs ein? Gib doch einfach der Liste eine id.
Die Funktion, den Text anzupassen, brauchst du wahrscheinlich auch nicht.
HTML:
<script language="javascript">
function ausfahren(x)
{
if(document.getElementById(x).style.display == 'none')
{
document.getElementById(x).style.display="";
}
else
{
document.getElementById(x).style.display = 'none';
}
}
</script>
HTML:
<ul class="list">
<li><a href="index.html" class="act">Home</a></li>
<li><a href="ueberuns.html">Über Uns</a></li>
<li><a href="kontakt.php">Kontakt</a></li>
<li>
<a href="STANDARDSEITE.html" onClick="ausfahren('menu');return false;">Dienstleistungen</a>
<ul id="menu">
<li>
</li>
<span><a href="privatkunden.html"> Privatkunden </a></span>
<li>
</li>
<span><a href="geschaeftskunden.html"> Geschäftskunden </a> </span>
</ul>
</li>
<li><a href="referenzen.html">Referenzen</a></li>
<li><a href="anfahrt.html">Anfahrt</a></li>
<li class="last"><a href="impressum.html">Impressum</a></li>
</ul>
Hier auch ein Beispiel, wie man Links per JS deaktivieren kann (return: false; ). STANDARDSEITE.html wird nur beim draufklicken aufgerufen, wenn JS ausgeschaltet ist.
Um das Problem mit ausgeschaltetem JS, das Thor angesprochen hat, zu umgehen, rufst du per onload="" im body-Tag eine Funktion auf, die alle Ausklapplisten versteckt.
HTML:
<body onload="versteckeListen();">
<script type="text/javascript">
function versteckeListen()
{
document.getElementById("menu").style.display = 'none';
}
</script>