Hallo,
vielen Dank für eure ersten Antworten. Ich habe die Tips umgesetzt, doch leider funktioniert es jetzt in keinem Browser mehr. Es liegt also ein grundsätzlicher Fehler in meinem Code vor.
Aufschluss darüber gibt das in der JS-Funktion eingebaute "alert(field);". Sobald man auf Punkt "Test 1" klickt, meldet das alert "cat1", was korrekt ist. Klickt man dann auf "Test 1.1" meldet das alert erst "cat11" <- korrekt, dann aber nochmal "cat1" <- nicht korrekt, was zur Schließung der oberen Ebene führt.
Grüße
Basti
<script type="text/javascript">
function openclose(field)
{
alert(field);
if(document.getElementById(field))
{
if(document.getElementById(field).style.display == "block") { document.getElementById(field).style.display = "none"; }
else { document.getElementById(field).style.display = "block"; }
}
}
</script>
<ul id='cat0' style='display:block; cursor:pointer;'>
<li onClick=openclose('cat1');>Test 1
<ul id='cat1' style='display:none; cursor:pointer;'>
<li onClick=openclose('cat11');>Test 1.1
<ul id='cat11' style='display:none; cursor:pointer;'>
<li onClick=openclose('cat111');>Test 1.1.1
<ul id='cat111' style='display:none; cursor:pointer;'>
<li onClick=openclose('cat1111');>Test 1.1.1.1</li>
<li onClick=openclose('cat1112');>Test 1.1.1.2</li>
</ul>
</li>
<li onClick=openclose('cat112');>Test 1.1.2</li>
</ul>
</li>
</ul>
</li>
<li onClick=openclose('cat2');>Test 2</li>
<li onClick=openclose('cat3');>Test 3</li>
<li onClick=openclose('cat4');>Test 4
<ul id='cat4' style='display:none; cursor:pointer;'>
<li onClick=openclose('cat41');>Test 4.1
<ul id='cat41' style='display:none; cursor:pointer;'>
<li onClick=openclose('cat411');>Test 4.1.1</li>
</ul>
</li>
<li onClick=openclose('cat42');>Test 4.2</li>
</li>
</ul>