Zum Inhalt springen

HMENU - Unterpunkte aufgeklappt lassen

Erstellt am 24. Januar 2013 · 1 Antwort · letzte Antwort am 24. Januar 2013

Tags: Frage

Dummbrot ·

Hallo,

TL;DR am Ende! 🙂

ich habe ein Menü gebaut ähnlich diesem:

(...)
- Äpfel
-- Sorte 1
-- Sorte 2
-- Sorte 3
- Birnen
-- Sorte 1
-- Sorte 2
-- Sorte 3
- Spinat
-- Sorte 1
-- Sorte 2
-- Sorte 3
(...)

Mit folgendem Code

lib.navi_sub{
  entryLevel = 1
  1 = TMENU
  1{
    //collapse = 1
    //expAll = 0
    wrap = <ul>|</ul>
    NO = 1
    NO{
      wrapItemAndSub = |<br>
    }
    CUR < .NO
    CUR.ATagParams = class="current"
  }
  2 < .1
  3 < .1
  4 < .1
  5 < .1
}

Klickt man auf Äpfel, bekommt man die drei Unterseiten (Sorte 1-3) angezeigt, die Sorten zu Birnen und Spinat nicht. Das ist so korrekt bzw. eben der Standard das man nur die Unterpunke angezeigt bekommt, auf dessen Elternseite man sich befindet. Logisch.

Gehe ich nun auf Birnen, sehe ich auch dort die 3 Sorten, allerdings klappt dann Äpfel wieder ein. Wie kann ich es bewerkstelligen das Menüs beim erstmaligen Klick immer geöffnet werden, aber beim "verlassen" des Punktes der Punkt dennoch aufgeklappt bleibt?

So sollte das Menü aussehen, wenn ich zuerst auf Äpfel, dann auf Birnen und weiter auf Sorte 2 gehe:

(...)
- Äpfel
-- Sorte 1
-- Sorte 2
-- Sorte 3
- Birnen
-- Sorte 1
-- Sorte 2
-- Sorte 3
- Spinat
(...)

Beide bereits besuchten Punkte sind hierbei geöffnet, nur Spinat nicht da man dort noch überhaupt nicht war.

expAll hilft hier nicht, denn damit legt man nur fest, ob alle Level generell ausgeklappt sein sollen. collapse (= 1) ist ebenso wenig die Lösung, denn damit stelle ich nur ein, das beim zweiten Klick auf einen Punkt, das Untermenü wieder eingezogen wird (das kann ja so beibehalten werden). Was ich nicht will ist, das Untermenüs wieder eingeklappt werden, wenn ich den Oberpunkt wechsle (von Äpfel zu Birnen).

Die TSRef zu HMENU habe ich durchgelesen (ist ja nicht viel). Ich habe die Befürchtung, das dieses Verhalten mit dem standard-HMENU gar nicht zu bewerkstelligen ist, da dynamisch immer die Unterpunkte zu den Elternseiten angezeigt werden. Wechsle ich quasi einen von den "Eltern" (hier Äpfel, Birnen und Spinat) dann befinde ich mich an einer anderen Stelle meiner Seitenhierarchie, das Menü wird neu generiert, und entsprechend wird nur das angezeigt wo ich mich eben jetzt befinde.

Gibt es hierfür eine Lösung?

TL;DR: ist es zu bewerkstelligen, das Untermenüs sich nur öffnen/aufklappen, aber beim verlassen weiterhin geöffnet bleiben?

toifel ·

Deine Befürchtung kann ich bestätigen - mit dem Standard HMENU wird das meines Wissens nach nicht realisierbar sein.

Ich würde hier mit expAll zunächst alle Subnavis ausgeben lassen, vorerst verbergen und das ein/aufklappen per Javascript realisieren.
Um den Status der Navis zu speichern und auch nach dem Laden einer neuen Seite wieder herzustellen müsste man entweder ein Cookie setzen, oder immer etwas an die URL anhängen.