Für eine dynamische Anwendung solltest Du "this" an die Funktion übergeben.
"this" beinhaltet den aktuellen Node des Elements.
Man kann aber auch den einzelnen Ebenen eine ID zuweisen und diese der Funktion übergeben. Damit wird dann gezielt die betreffende Ebene mit dem Link geöffnet.
Wenn die Angelegenheit dynamisch erstellt wird, also z. B. durch ein PHP oder Perlscript, kann man die auch durchnummerieren (allerdings muss eine ID mit einem Buchstaben beginnen, um sauber zu coden!), damit man in einer Schleife alle anderen Ebenen schliesst und nur die eine Ebene öffnet.
In der Javascript-Funktion dann eine Schleife wie in folgendem Beispiel ausführen:
Code: Alles auswählen
for (var i = 0; i < elements.length; i++) {
if (i == cur) {
elements[i].style.display = 'none';
} else {
elements[i].style.display = '';
}
}
wobei cur die ID des Elements ist, elements dann das Element selber.
Da eine ID allerdings mit einem Zeichen beginnen muss, wäre es zur Prüfung zu berücksichtigen:
wobei 'id_' hier mal nur als Beispiel angenommen wurde.
Im HTML-Teil würde das betreffende Element z. B. so benannt:
elements würde aus der übergebenen ID erstellt.
Also in der Funktion würde das drinnen stehen:
Element wird dabei aus "this" oder dem direkten ID-Bezeichner des Elements bestehen, der im Link zu packen wäre.
Soweit mal grob umrissen, was zu tun wäre.
Versuche es mal, vielleicht ist das schon ein ausreichender Denkanstoss
