luckger: Text wandert

Beitrag lesen

Hallo,

ich brauche keine javascript-freie Alternative, da ich vorher abprüfe ob javascript enabled ist. Das ist sowieso zwingend notwendig für die Seite.

Das mit dem ul-name tag. Ich habe das Ganze jetzt folgendermaßen umgeschrieben:

  
function task_menu_drop_switch(id){  
  
 var element = document.getElementById("task_menu_switch").getElementsByTagName("li")[id].getElementsByTagName("ul")[0];  
  
  
 if (element.style.display != "block"){  
  element.style.display = "block";  
 }else{  
  element.style.display = "none";  
 }  
  
}  

  
  
    <ul class='menu' id='task_menu_switch'>  
     <li><a>Löschen</a></li>  
     <li onclick='task_menu_drop_switch(1)'><a>Neu</a>  
  
      <ul>  
       <li><a>Link</a></li>  
       <li><a>Link</a></li>  
       <li><a>Link</a></li>  
      </ul>  
  
     </li>  
  
    </ul>  
  

Perfomanceprobleme dürfte es keine geben, da nur 4-5 Unteritems durchsucht werden müssen.

Das eigentliche Problem ist damit aber trotzdem nicht gelöst. Die übergeordnete li-Box wird nach einem Klick immernoch größer, obwohl ich nichts daran ändere.

Hat jemand eine Lösung dafür?

Vielen Dank schon im voraus,

luckger

@@luckger:

Das Untermenü ist per css default auf display:none gesetzt.

Damit ist deine Navigation also unbrauchbar; Nutzer bekommen gar kein Untermenü angezeigt. (Außer den wenigen, die zufällig JavaScript aktiviert haben.)

Navigation muss ohne optionale Technologie, die bei vielen nicht zu Verfügung steht, auskommen! Kommt sie auch: CSS only drop-down menu

Wenn ich nun auf den Button drücke, wird das Untermenü wunderbar angezeigt.

Eher wunderlich als wunderbar, wo das 'ul'-Element gar kein 'name'-Attribut haben darf. 'document.getElementsByName()' ist daher äußerst abenteuerlich. Und böse unperformant. Wozu den ganzen Elementbaum nach allen Elementen mit diesem 'name'-Attribut absuchen?

weiß da jemand Rat was ich falsch mache?

Du benutzt JavaScript zur Navigation – ohne eine JavaScript-freie Alternative anzubieten.

Du hast dein HTML-Quelltext nicht validiert.

Live long and prosper,
Gunnar