Avatar billede gubbibabz Praktikant
19. juni 2007 - 11:13 Der er 2 kommentarer

HJÆLP til min javascript-menu :D tak

hej alle "nørder" der ude :) Jeg sidder i skolen, og er ved at kode en menu i jave, hvilket vi ikke har lært endnu :P men jeg vil gerne alligevel, jeg har siddet og kigget her på de andre inlæg og har fundet dette:

<html>
  <head>
    <script language="javascript">
      <!--
   
ns4 = (document.layers)? true:false
ie4 = (document.all)? true:false
ie5 =(document.getElementById)? true:false
ns6 = (document.getElementById && !document.all)?true:false;


function showhide(menu){

if (ns6||ie5 && document.getElementById(menu).style.display=='none'||document.getElementById(menu).style.display=='undefined') {
          document.getElementById('menu1_sub').style.display='none';
          document.getElementById('menu2_sub').style.display='none';
          document.getElementById('menu3_sub').style.display='none';
          document.getElementById(menu).style.display='';
        }else if (ns6||ie5 && document.getElementById(menu).style.display==''){
        alert('hej igen')
        document.getElementById(menu).style.display='none'
    }else if (ie4 && document.all[menu].style.display=='none') {
          document.all['menu1_sub'].style.display='none';
          document.all['menu2_sub'].style.display='none';
          document.all['menu3_sub'].style.display='none';
          document.all[menu].style.display='';
        }else if (ie4 && document.all[menu].style.display==''){
        document.all[menu].style.display='none'
    }else if (ns4 && document.layers[menu].style.display=='none') {
          document.layers['menu1_sub'].style.display='none';
          document.layers['menu2_sub'].style.display='none';
          document.layers['menu3_sub'].style.display='none';
          document.layers[menu].style.display='';
        }else if (ns4 && document.layers[menu].style.display==''){
        document.layers[menu].style.display='none'
    } 
}
 
      -->
    </script>
  </head>

  <body>
 
  <a href="#" id="menu1" name="menu1" onClick="showhide('menu1_sub')" style="cursor:hand;">Vis Menu 1</a>
<br>
      <div id="menu1_sub" name="menu1_sub" style="display:none">
        <a href="#" target="_blank">aaasd</a><br>
        <a href="#" target="_blank">asda</a><br>
      </div>
    <a href="#" id="menu2" name="menu2" onClick="showhide('menu2_sub')" style="cursor:hand;">Vis Menu 2</a>
    <br>
      <div id="menu2_sub" name="menu2_sub" style="display:none">
        <a href="#" target="_blank">asda</a><br>
        <a href="#" target="_blank">asdad</a><br>
      </div>

    <a href="#" id="menu3" name="menu3" onClick="showhide('menu3_sub')" style="cursor:hand;">Vis Menu 3</a>
      <div id="menu3_sub" name="menu3_sub" style="display:none">
        <a href="#" target="_blank">asdad</a><br>
      </div>

  </body>
</html>


MEN MEN MEN, jeg vil gerne ha at når jeg klikker på menupunktet så åbner menuen, og når jeg så trykker igen, så skal den lukke sig sammen. men det skal os stadig lukke den gamle sammen når jeg klikker på et andet af linksne.

Derud over vil jeg gerne ha nogle farver på :) ? hvordan skal jeg lige gøre det, kan godt CSS style linksne, men vil gerne ha så hoved overskrifterne har en BG farve, og at de punkter der kommer frem så har en anden farve :) Håber der er nogen der ude som kan hjælpe lille mig :)

// Maria aka GuBBiBabz
Avatar billede gubbibabz Praktikant
19. juni 2007 - 11:26 #1
weee jeg fik den selv til at lukke sammen igen når man klikker 2. gang, nu skal der bare en masse farver på :D?
Avatar billede roenving Novice
19. juni 2007 - 13:42 #2
Er det et krav fra en kunde, at du skal understøtte de to sidste ie4- og ns4-er ?-)

-- ellers kan det gøres adskilligt kortere:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
  <head>
    <style type="text/css">
    .menuLink{cursor:pointer;}
    .subMenu{display:none;}
    </style>
    <script type="text/javascript">
function showhide(menu){
  menu = document.getElementById(menu);
  var state = menu.style.display != "block",i=1;
  while(document.getElementById("menu" + i + "_sub"))
    document.getElementById("menu" + i++ + "_sub").style.display = "none";
  menu.style.display = state ? "block" : "none";
}
    </script>
  </head>

  <body>
 
  <a href="#" id="menu1" class="menuLink" onclick="showhide('menu1_sub');return false;">Vis Menu 1</a>
<br>
      <div id="menu1_sub" class="subMenu">
        <a href="#" target="_blank">aaasd</a><br>
        <a href="#" target="_blank">asda</a><br>
      </div>
    <a href="#" id="menu2" class="menuLink" onclick="showhide('menu2_sub');return false;" style="cursor:pointer;">Vis Menu 2</a>
    <br>
      <div id="menu2_sub" class="subMenu">
        <a href="#" target="_blank">asda</a><br>
        <a href="#" target="_blank">asdad</a><br>
      </div>

    <a href="#" id="menu3" class="menuLink" onclick="showhide('menu3_sub');return false;" style="cursor:pointer;">Vis Menu 3</a>
      <div id="menu3_sub" class="subMenu">
        <a href="#" target="_blank">asdad</a><br>
      </div>

  </body>
</html>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester