Avatar billede nich01 Nybegynder
13. december 2003 - 00:15 Der er 21 kommentarer

menu visning af undermenuer

Jeg har følgende menu

webmaster
-underwebmaster

hvordan laver jeg så min "-underwebmaster" først vises og fjernes igen når jeg trykker på "webmaster", det skal kunne køre uden hele siden skal loades igen.

Er der noget man måske kan lave i php?
Avatar billede steen_hansen Forsker
13. december 2003 - 00:23 #1
Jeg ved ikke, om det er dette du efterlyser:

Mellem <head></head>

<script type="text/javascript" language="JavaScript">
<!-- Menu start
    function showMnu(id) {
        var styleCheck = document.getElementById("mnu" + id).style.display;

        if (styleCheck == "inline") document.getElementById("mnu" + id).style.display = "none"

        if (styleCheck == "none") document.getElementById("mnu" + id).style.display = "inline"

        }
// Menu slut -->
</script>

Mellem <body></body>:

<div style="Cursor: Hand" onclick="showMnu(1);"><b>Velkommen</b></div>
<div style="display: inline" id="mnu1">
<a href="/min_mappe/" style="WIDTH: 100%" onFocus="this.blur()">Link 1</a><br>
<a href="/min_mappe1/" style="WIDTH: 100%" onFocus="this.blur()">Link 2</a><br>
</div>
Avatar billede roenving Novice
13. december 2003 - 04:56 #2
-- du kan ikke lave noget i php uden at reloade siden, men steen_hansens ide er den helt rigtige, men måske lidt omstændelig (og browser-afhængig !-)

Selv ville jeg gøre sådan:

<script type="text/javascript" language="JavaScript">
function showMnu(id) {//IE4+, NS6+, alle browsere efter 1998
  var menu;
  if(document.getElementById){
      menu = document.getElementById("u"+id);
  }else if(document.all){
      menu = document.all["u"+id];
  }
  if(menu.style.display=='none'){
      menu.style.display='block';
  }else{
      menu.style.display='none';
  }
}
</script>

<div id="menu1" style="cursor:pointer" onclick="showMnu(this.id);"><b>Velkommen</b></div>
<div style="display:none;" id="umenu1">
<a href="/min_mappe/" onFocus="this.blur()">Link 1</a><br>
<a href="/min_mappe1/" onFocus="this.blur()">Link 2</a><br>
</div>
Avatar billede nich01 Nybegynder
13. december 2003 - 09:46 #3
Mange Tak, Men jeg har lige et lille spørgsmål til, hvordan får jeg den til at huske om undermeuen skal vises eller skjules når siden reloades?
Avatar billede roenving Novice
13. december 2003 - 16:58 #4
Så skal du skrive en cookie og aflæse den den, når du loader !-)
Avatar billede roenving Novice
13. december 2003 - 17:13 #5
F.eks. sådan:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Vis/skjul menu -- og husk det !-)</title>
<script type="text/javascript" language="JavaScript">
function showMnu(id) {//IE4+, NS6+, alle browsere efter 1998
  var menu = getElm("u"+id);
  for(i=1;4>i;i++){
      if(menu!=getElm("umenu"+i))getElm("umenu"+i).style.display='none';
  }
  if(menu.style.display=='none'){
      menu.style.display='block';
      document.cookie = "menu="+id;
  }else{
      menu.style.display='none';
      document.cookie = "menu="+id;
  }
}
function getElm(elm){
  if(document.getElementById){
      menu = document.getElementById(elm);
  }else if(document.all){
      menu = document.all[elm];
  }
  return menu;
}
function readCook(){
    if(document.cookie){
        cook = document.cookie;
        mCook = cook.substring(cook.indexOf("menu=")+5);
        if(mCook.indexOf(";"))
            mCook = mCook.substring(0,mCook.indexOf(";"))
        if(mCook.length==5)showMnu(mCook);
    }
}
</script>
</head>
<body onload="readCook()">

<div id="menu1" style="cursor:pointer" onclick="showMnu(this.id);"><b>Velkommen</b></div>
<div style="display:none;" id="umenu1">
<a href="/min_mappe/" onFocus="this.blur()">Link 1</a><br>
<a href="/min_mappe1/" onFocus="this.blur()">Link 2</a><br>
</div>
<div id="menu2" style="cursor:pointer" onclick="showMnu(this.id);"><b>Velkommen</b></div>
<div style="display:none;" id="umenu2">
<a href="/min_mappe/" onFocus="this.blur()">Link 1</a><br>
<a href="/min_mappe1/" onFocus="this.blur()">Link 2</a><br>
</div>
<div id="menu3" style="cursor:pointer" onclick="showMnu(this.id);"><b>Velkommen</b></div>
<div style="display:none;" id="umenu3">
<a href="/min_mappe/" onFocus="this.blur()">Link 1</a><br>
<a href="/min_mappe1/" onFocus="this.blur()">Link 2</a><br>
</div>
</body>
</html>
Avatar billede steen_hansen Forsker
13. december 2003 - 21:51 #6
roenvig, du er for styg! :o)

Menuen husker dog ikke første valg, gør den?

Vælger jeg et menupunkt fra menu2 (f.eks.), er det menu1, der vises udslået. Når jeg trykker på det samme menupunkt fra menu2, huskes valget. Men det gør det ikke første gang.
Avatar billede roenving Novice
13. december 2003 - 21:58 #7
Den kombination prøvede jeg ikke !-)

-- men den skulle skrive en cookie første gang man overhovedet trykker på et menupunkt, så jeg forstår ikke ...
Avatar billede steen_hansen Forsker
13. december 2003 - 22:01 #8
Ok, den gør det også hos dig så? Så er jeg ikke helt tosset :o)

Kan det rettes, for den er da noget bedre, end den jeg postede til en start
Avatar billede steen_hansen Forsker
13. december 2003 - 22:02 #9
Det er det forrige valg, der bliver husket
Avatar billede roenving Novice
13. december 2003 - 22:02 #10
-- gad ikke lukke ned og finde den cookie, så jeg har ikke prøvet !-)
Avatar billede steen_hansen Forsker
13. december 2003 - 22:04 #11
Ok, håber du gider på et tidspunkt. Snakkes! :o)
Avatar billede steen_hansen Forsker
20. december 2003 - 08:21 #12
Du fandt ikke ud af det, roenvig?
Avatar billede roenving Novice
20. december 2003 - 12:23 #13
En lillebitte ændring, så nu kører den bare, når jeg prøver ...

function readCook(){
    if(document.cookie){
        cook = document.cookie;
        mCook = cook.substring(cook.indexOf("menu=")+5);
        if(mCook.indexOf(";")>-1)
            mCook = mCook.substring(0,mCook.indexOf(";"))
        if(mCook.length==5)showMnu(mCook);
    }
}
Avatar billede steen_hansen Forsker
30. januar 2004 - 21:50 #14
Hm, der bliver vist rodet med DB? :o)

Jeg havde ikke set din ændring, det virker jo perfekt, roenvig :o)

nich01, roenvig's forslag er noget bedre end mit.
Avatar billede steen_hansen Forsker
18. februar 2004 - 18:02 #15
Det er sk...godt, men der er stadig lidt problemer med menuen, roenvig
Avatar billede steen_hansen Forsker
29. februar 2004 - 21:21 #16
Jeg håber du har mod på at kigge på det på et tidspunkt, for det er en god menu :o)
Avatar billede roenving Novice
29. februar 2004 - 21:30 #17
-- hvilke problemer ?-)
Avatar billede steen_hansen Forsker
02. marts 2004 - 10:01 #18
Hvis jeg tager ét hovedmenupunkt, jeg går f.eks. ind på

<div id="menu1" style="cursor:pointer" onclick="showMnu(this.id);"><b>Velkommen</b></div>

- så er denne menu foldet ud, som den skal være.

Går jeg derefter ind på

<div id="menu2" style="cursor:pointer" onclick="showMnu(this.id);"><b>Kontakt os</b></div>

så er det stadig

<div id="menu1" style="cursor:pointer" onclick="showMnu(this.id);"><b>Velkommen</b></div>

som er foldet ud ...?
Avatar billede steen_hansen Forsker
04. marts 2004 - 20:13 #19
Virker den helt perfekt hos dig, roenvig?

Undskyld jeg bruger dit spørgsmål, nich01, men jeg tror det er denne menu du har ledt efter :o)
Avatar billede roenving Novice
06. marts 2004 - 06:51 #20
Indtil videre har den gjort præcis som jeg har ønsket !-)
Avatar billede steen_hansen Forsker
07. marts 2004 - 21:13 #21
Hmm? Jeg prøver at smide koden, som jeg benytter. Den er ikke 100% i orden hos mig :o)
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