Hallo Christian,
bin zwar in JavaScript auch noch nich so sattelfest, aber da dir bisher noch niemand brauchbar geantwortet hat (was nicht heisst, dass du über Stonies Bemerkung mal nachdenken könntest) versuch ichs mal:
Also 1. Was mir aufgefallen ist, hinter deiner for-Schleife kommt eine etwas -mir zumindest- merkwürdige erscheinende Anweisung, da is eine Methode "stopPropagation" und ein Objekt "cancelBubble" die in der selfhtml Objekt-Referenz nicht gelisted sind, daher direkt die Frage, hast du sicher das ganze Skript kopiert?
Sowohl IE als auch Mozilla (allerdings nur Version 6 bzw 1.4)interpretieren den ganzen Code auch problemlos ohne diesen Abschnitt hinter der Schleife. Andererseits könnte ich mir beinah vorstellen das da genau das Problem liegen könnte.
Daher 2.: Probier doch mal folgendes: Schmeiß den Kram ganz raus und pack vor die for-Schleife erstmal ne Anweisung die dir pauschal und unabhängig vom tatslchlichen Zustand die Kindknoten aller divs auf style.display="none" setzt. Damit schließt du erstmal das ganze Menü und dann öffnest du in der for schleife das entsprechende div wieder.
Wie du das genau erreichst weiß ich jetzt gar nicht so genau aber wahrscheinlich mittels einer verschachtelten Schleife die erstmal alle benachbarten Knoten und dann innerhalb dieser alle Kindknoten anspricht. Bin wie gesagt mit dem node-Objekt auch noch nich so warm, aber prinzipiell sollte das klappen, mehr dazu unter
http://selfhtml.teamone.de/javascript/objekte/node.htm.
Grundsätzlich is JavaScript nich sooo schwer, aber man muss sich schon ein wenig damit auseinandersetzen, dann erzielt man mit zunehmender Zeit exponentielle Erfahrungszuwächse und Spaß machts auch noch.
Hoffe hab etwas helfen können, an alle anderen: Falls ich Mist geschrieben haben sollte, dann fasst das einfach als einen Versuch eines Laien auf einem anderen zu helfen, ohne die Absicht dabei verfolgt zu haben, dies ehrwürdige Forum zu entweihen.
Grüße i.