Thomas: Dynamisches Menu

Guten Tag allesamt.

Habe folgendes anliegen:
Habe ein menu mit 4 Oberpunkten und jeweiligen unterpunkten, die erst eingeblendet werden, wenn man auf das obermenu klickt. Habe dazu folgende Scripts:

function wechsel(id){
 if (document.getElementById(id).className=='an') {
   document.getElementById(id).className='aus';
   } else {
     document.getElementById(id).className='an';
   }
}

function menuan(){
 document.getElementById("menu1l").href = "javascript:wechsel('menu1');";
 document.getElementById("menu2l").href = "javascript:wechsel('menu2');";
 document.getElementById("menu3l").href = "javascript:wechsel('menu3');";
 document.getElementById("menu4l").href = "javascript:wechsel('menu4');";
 document.getElementById("menu1").className='aus';
 document.getElementById("menu2").className='aus';
 document.getElementById("menu3").className='aus';
 document.getElementById("menu4").className='aus';
}

Die erste Funktion ist die zum ausblenden der Untermenüs, die 2. wird bei start eusgeführt und soll die menüs schließen, wenn javascript verfügbar ist und die links ändern (weil der sonst mit nicht js versucht ne seite "menu3" zu öffnen!)

Nun habe ich aber das Problem, das wenn eine andere seite geladen wird, das ja wieder alle Menus ausgehen. Der soll sich aber merken welche im vorherigen fenster aus waren! Mit cookies habe ich es nicht hinbekommen. Achja und ich weiß mit Frames wäre das ja egal, aber auf die wollte ich gerne verzichten (schlechte erfahrungen usw.)

Habt ihr vll ne Idee hatte 4 cookies versucht mit menu1=an menu2... aber wenn ich den auslese, kommen immer alle werte hintereinander somit nicht mit nem if-befehlt zu verwerten.

Sry das es so lang wurde, aber hoffe es kann mir geholfen werden!

mfg

Thomas

  1. Selbst nach langem basteln hinbekommen:

    function wechsel(id){
     if (document.getElementById(id).className=='an') {
       document.getElementById(id).className='aus';
     document.cookie = id + "=aus; path=/";
       } else {
         document.getElementById(id).className='an';
      document.cookie = id + "=an; path=/";
       }
    }

    function menuan(){
     document.getElementById("menu1l").href = "javascript:wechsel('menu1');";
     document.getElementById("menu2l").href = "javascript:wechsel('menu2');";
     document.getElementById("menu3l").href = "javascript:wechsel('menu3');";
     document.getElementById("menu4l").href = "javascript:wechsel('menu4');";
     if (get_cookie('menu1') == "an") {
     document.getElementById("menu1").className='an';
     //document.cookie = "menu1=aus; path=/";
     } else {
     document.getElementById("menu1").className='aus';
     document.cookie = "menu1=aus; path=/";
     }
     if (get_cookie('menu2') == "an") {
     document.getElementById("menu1").className='an';
     //document.cookie = "menu2=aus; path=/";
     } else {
     document.getElementById("menu2").className='aus';
     document.cookie = "menu2=aus; path=/";
     }
     if (get_cookie('menu3') == "an") {
     document.getElementById("menu3").className='an';
     //document.cookie = "menu3=aus; path=/";
     } else {
     document.getElementById("menu3").className='aus';
     document.cookie = "menu3=aus; path=/";
     }
     if (get_cookie('menu4') == "an") {
     document.getElementById("menu4").className='an';
     //document.cookie = "menu4=aus; path=/";
     } else {
     document.getElementById("menu4").className='aus';
     document.cookie = "menu4=aus; path=/";
     }

    }

    function get_cookie(name) {
        var value=null;
        if(document.cookie != "") {
          var kk=document.cookie.indexOf(name+"=");
          if(kk >= 0) {
            kk=kk+name.length+1;
            var ll=document.cookie.indexOf(";", kk);
            if(ll < 0)ll=document.cookie.length;
            value=document.cookie.substring(kk, ll);
            value=unescape(value);
          }
        }
        return value;
      }