Zum Inhalt springen

TMENU.wrap bei einem vorhandenem Submenü überschreiben

Erstellt am 25. Juni 2010 · 2 Antworten · letzte Antwort am 8. September 2010

Tags: Frage

Hamsta ·

Hallo,
ich hab folgendes Problem:
Bei meinem Menü würde ich gern den wrap ändern wenn ein Submenü vorhanden ist.

ce.navi.MainMenu = HMENU
ce.navi.MainMenu {
  special = directory
  special.value = 35
  entryLevel = 0
  
  1 = TMENU
  1 {
    noBlur = 1
    expAll = 1
    wrap = <ul>|</ul>
    
    NO = 1
    NO {
      wrapItemAndSub = <li class="MainMenuItem">|</li>
      stdWrap.htmlSpecialChars = 1
    }
  }
  
  2 = TMENU
  2 < .1
  2 {
    wrap = <ul class="MainMenuDropdownBox">|</ul>   
    NO.wrapItemAndSub = <li>|</li> 
  }
  
  3 = TMENU
  3 < .1
  3 {
    NO.wrapItemAndSub = <li>|</li>
  }
}

Das Menü wie es ist funktioniert ansich einwandfrei.

Nur würde ich gern das

ce.navi.MainMenu.2.wrap

überschreiben, wenn eine 3. ebene vorhanden ist.
Ich weis zwar, dass ich die Wraps der einzelnen Menüpunkte via IFSUB überschreiben kann, aber von IFSUB heraus komme ich leider nicht mehr an das 2.wrap heran.

Jemand eine Idee?

G Hamsta

Hamsta ·

Ich hab das jetzt Temporär über Javascript und jQuery gelöst indem ich die kindelemente der Menüpunkte Abfrage.

$("li.MainMenuItem").children("ul.MainMenuDropdownBox:has(li > ul)").each(function(){
	$(this).addClass("WhiteSpaceNowrap");
    });
Hamsta ·

Hab inzwischen eine Javascriptfreie Lösung gefunden.

Ich versetze mithilfe von Optionsplit den wert der bisher in 2.wrap stand an den anfang der 1. bzw letzten ELements in NO.wrapItemAndSub bzw IFUSB.wrapItemAndSub.

ce.navi.MainMenu = HMENU
ce.navi.MainMenu {
  special = directory
  special.value = 35
  entryLevel = 0
 
  1 = TMENU
  1 {
    noBlur = 1
    expAll = 1
    wrap = <ul>|</ul>
 
    NO = 1
    NO {
      wrapItemAndSub = <li class="MainMenuItem">|</li>
      stdWrap.htmlSpecialChars = 1
    }
  }
 
  2 = TMENU
  2 < .1
  2 {
    wrap >|</ul>   
    NO.wrapItemAndSub = <ul class="MainMenuDropdownBox"><li>|</li>|*|<li>|</li>|*|<li>|</li></ul>
    IFSUB = 1
    IFSUB < .NO
    IFSUB.wrapItemAndSub = <ul class="MainMenuDropdownBox WhiteSpaceNowrap"><li>|</li>|*|<li>|</li>|*|<li>|</li></ul>
  }
 
  3 = TMENU
  3 < .1
  3 {
    NO.wrapItemAndSub = <li>|</li>
  }
}

wers brauchen kann.. viel Spaß damit o.O lg