Zum Inhalt springen

Menu LI mit class, die abhängig von der Position sind

Erstellt am 30. März 2010 · 3 Antworten · letzte Antwort am 8. April 2010

Tags: Frage

lizbet ·

An die Mitreisenden,
folgendes (Horizontal-UL-)Menu soll umgesetzt werden (es wechseln die background-Grafiken):

- inaktiv (class="eins")
- inaktiv, wenn irgendwo links von aktiv (class="zwei")
- aktiv (class="drei")

Beispiel Hier wäre der dritte Menupunkt aktiv:
Item1 class="zwei" | Item2 class="zwei" | Item3 class="drei" | Item4 class="eins"

Kann man diese Abhängigkeit überhaupt mit TS lösen?

Erster Ansatz ist mit Hilfe von "register" unterschiedliche Klassen abhängig von der Position zuweisen zu lassen. Bspw.:

1.NO.ATagParams.dataWrap = class="aktiv{ register:count_HMENU_MENUOBJ }"

Mit sowas kann man pfrimeln, aber das löst freilich nicht das obige Prob.

Danke für Hilfe
Liz

lizbet ·

Zugegebenermassen ist das Ganze ein sehr spezieller Fall. Rein vom Design her vorgegeben. Ohne dass dem Design eine Funktion folgte - die Seiten sind auf einer Ebene, nicht verschachtelt. (Wäre das Design fuktional, könnte ich die einzelenen Seiten ineinander schachteln und mit ACT und CUR arbeiten.)

Aber egal, denn die Fragestellung ist auch noch andernorts brauchbar. Folgende register stehen zur Verfügung (eine vollständige Liste, was man da alles zuweisen kann, wär auch was feines):

count_HMENU:
gibt die Anzahl der H-Menus an. Welche gibts denn noch?

count_HMENU_MENUOBJ:
"nummeriert" alle H-Menü-Objekte in ihrer Reihenfolge (Position) unabhängig vom Level

count_menuItems:
gibt die Anzahl der Menü-Objekte des jeweiligen Levels an.

count_MENUOBJ :
"nummeriert" alle Menü-Objekte in ihrer Reihenfolge (Position) unabhängig vom Level. Wasn da der Unterschied zu count_HMENU_MENUOBJ?

Man müsste den Wert(Position) des ACT und den Wert(Position) des NO auslesen und beide Werte miteinander verrechnen.
Sowas wie: wenn ACT(Position) minus NO(Position) kleiner als ACT(Position), dann gib NO die Klasse "zwei", bzw. wenn größer, dann Klasse "eins".

Öhhh, geht das mit TS?
Kann TS rechnen?

lizbet ·

soweit so gut. ich kann also eigene registerwerte definieren.

davon ausgehend, dass ich zwei werte definiert habe:
- mein_registerwert
- mein_anderer_registerwert

(beide lassen sich erfolgreich ausgeben.)

ahaber, warum geht das hier schief:

mein_objekt.cObject=TEXT
mein_objekt.cObject {
  value=klasseX
  if.value = { register:mein_registerwert }
  if.isGreaterThan.cObject=TEXT
  if.isGreaterThan.cObject {
    value = { register:mein_anderer_registerwert }
    insertData=1
  }
}

während das klappt:

mein_objekt.cObject=TEXT
mein_objekt.cObject {
  value=klasseX
  # if.value = { register:mein_registerwert }
  if.value = 5
  if.isGreaterThan.cObject=TEXT
  if.isGreaterThan.cObject {
    value = { register:mein_anderer_registerwert }
    insertData=1
  }
}

kann ich dem if.value keinen registerwert zuordnen?
was mache ich falsch?

es dankt für hilfe
liz

lizbet ·

selbst geholfen:

mein_objekt.cObject=TEXT
mein_objekt.cObject {
  value=klasseX
  if.value.data = register:mein_registerwert
  if.isGreaterThan.cObject=TEXT
  if.isGreaterThan.cObject {
    data= register:mein_anderer_registerwert
    insertData=1
  }
}

so gehts.