Avatar billede webfear Nybegynder
29. september 2002 - 17:49 Der er 6 kommentarer og
1 løsning

Undermenu skal blive stående

Hej
Jeg har en menu, hvor nogle af mine menupunkter er lavet sådan at de åbner en undermenu i stedet for at være et link. Men når jeg klikker på et link i en undermenu så skal undermenuen stadigvæk være synlig, men den forsvinder da den henter en hel ny side. Koden ser sådan her ud:

<div style="cursor: hand" onClick='ifmenupunkt_2.style.display=="")
    { m_2.src="gennemsigtig.gif";menupunkt_2.style.display="none" }
    else
    { m_2.src="gennemsigtig.gif";menupunkt_2.style.display="";}'>
    <img id="m_2" width="4" src="gennemsigtig.gif"><font face="Arial" color="FFFFBB">Menupunkt_2</div>
<div id="menupunkt_2" style="display:None"><font style="font-size: .12 in;">
        &nbsp;&nbsp;&nbsp;<a href="http://www.ghazaleh.dk/lkf/test.php">Undermenu_2.1</a>
    <br>&nbsp;&nbsp;&nbsp;<a href="http://www.ghazaleh.dk/lkf/test.php">Undermenu_2.2</a>
    <br>&nbsp;&nbsp;&nbsp;<a href="http://www.ghazaleh.dk/lkf/test.php">Undermenu_2.3</a>
    <br>&nbsp;&nbsp;&nbsp;<a href="http://www.ghazaleh.dk/lkf/test.php">Undermenu_2.4</a>
    <br>&nbsp;&nbsp;&nbsp;<a href="http://www.ghazaleh.dk/lkf/test.php">Undermenu_2.5</a>
    </div>

Hvordan får jeg undermenuerne til at blive ved med at være fremme når jeg klikker på et link?
I kan se hvordan det ser ud på www.ghazaleh.dk/lkf

Mette Fournais
Avatar billede Slettet bruger
29. september 2002 - 20:28 #1
Den nemmeste løsning ville være at bruge frames.
Ellers må du sende en variabel med i url'en, der fortæller, hvilken menu, der er åben. Ved den pågældende div skriver du så "display: block" i stedet for "none". Eller evt. "inline".
Avatar billede Slettet bruger
29. september 2002 - 20:28 #2
Du kan udskrive det vha. PHP eller ASP, hvilket ville være det nemmeste, eller gå omvejen og bruge JavaScript.
Avatar billede webfear Nybegynder
30. september 2002 - 08:28 #3
Jeg kan ikke lide at bruge frames så det vil jeg helst undgå. Jeg tænkte i første omgang på at lave det i php, men jeg vil gerne undgå at skulle hente siden igen hvergang jeg åbner en undermenu.

Men det lyder som en god idé at sætte display = noget andet. Jeg har selv eksperimenteret lidt, men jeg kunne ikke rigtigt få det til at fungere. For hvis man så lukker undermenuen, så vil den ikke acceptere det, da jeg jo har skrevet at hvis variablen fra url'en er = åben så skal menuen altid være åben.

Men hvis du kender et script hvor det kan klares med javascript, så ville det også være super :-)

Mette Fournais
Avatar billede Slettet bruger
30. september 2002 - 15:49 #4
Det skal du ikke skrive. Det eneste, du skal ændre er dette:

<div id="menupunkt_2" style="display:None"><font style="font-size: .12 in;">

... som i stedet skal være dette:

<div id="menupunkt_2" style="display:inline"><font style="font-size: .12 in;">

Eller "block".
Avatar billede nikolajdu Nybegynder
01. oktober 2002 - 00:19 #5
Her er min version der sætter en cookie.

<html>
  <head>
 
  <style>
 
  .spacer{ width:20}
 
  .myBody,table{
font-family : Verdana, Arial;
font-size : 9px ;
color : #aaaaaa;
background-color: #006699;
margin-top:0;
margin-left:0;
border:0;
}

a:link{color: #ffffff;text-decoration: none;}
a:visited{color: #ffffff;text-decoration: none;}
a:active{color: #FFCCFF;text-decoration: underline;}
a:hover{color: #FFCC00;text-decoration: underline;}
 
  </style>
 
    <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;

forrige = false;

function vis(id){
if(forrige&&forrige!=id){
var styleObj = (ns4)? document.layers[forrige] : (ie4)? document.all[forrige].style : document.getElementById(forrige).style;
styleObj.display = "none"
saet(forrige,0)
}
var styleObj = (ns4)? document.layers[id] : (ie4)? document.all[id].style : document.getElementById(id).style;
if(styleObj.display == "none"){
styleObj.display = ""
visible= 1
}else{
styleObj.display = "none"
visible = 0
    }
    saet(id,visible)
    forrige = id;
}
 
    function saet (name, value) {
      var argv = saet.arguments;
      var argc = saet.arguments.length;
      var expires = (argc > 2) ? argv[2] : null;
      var path = (argc > 3) ? argv[3] : null;
      var domain = (argc > 4) ? argv[4] : null;
      var secure = (argc > 5) ? argv[5] : false;
      document.cookie = name + "=" + escape (value) +
        ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
        ((path == null) ? "" : ("; path=" + path)) +
        ((domain == null) ? "" : ("; domain=" + domain)) +
        ((secure == true) ? "; secure" : "");
    }


function hentKage2 (name) {
var cook = document.cookie;
var cookNavn = name + "=";
var laengde = cook.length;

var start = 0;
while (start < laengde) {
var slut = start + cookNavn.length;
if (cook.substring(start, slut) == cookNavn) {
var vend = cook.indexOf (";", slut);
if (vend == -1) vend = laengde;

return unescape(cook.substring(slut, vend));
}

start = cook.indexOf(" ", start) + 1;
if (start== 0) break;
}
return null;
}


      function init(){
antalLag = 3;
if(document.cookie){
for (a=1;a<=antalLag;a++){
tjeck = hentKage2('undermenu'+a)
if(tjeck==1){
vis('undermenu'+a)
            }
        }
    }
}
      -->
      </script>
  </head>

  <body onload="init()" class="myBody">
 
  <a href="#" id="menu1" onClick="vis('undermenu1')" style="cursor:hand;">Vis Menu 1</a>
<br>
      <div id="undermenu1" style="display:none">
      <table border="0">
        <tr>
        <td class="spacer">&nbsp;</td>
    <td><a href="#" target="_blank">1.1</a></td>
    </tr>
    <tr>
    <td class="spacer">&nbsp;</td>
    <td><a href="#" target="_blank">1.2</a></td>
   
        </tr>
</table>
      </div>
    <a href="#" id="menu2" onClick="vis('undermenu2')" style="cursor:hand;">Vis Menu 2</a>
    <br>
      <div id="undermenu2" style="display:none">
      <table border="0">
        <tr>
    <td class="spacer">&nbsp;</td>
    <td><a href="#" target="_blank">2.1</a></td>
        </tr>
    <tr>
    <td class="spacer">&nbsp;</td>
    <td><a href="#" target="_blank">2.2</a></td>
        </tr>
</table>
      </div>

    <a href="#" id="menu3" onClick="vis('undermenu3')" style="cursor:hand;">Vis Menu 3</a>
      <div id="undermenu3" style="display:none">
      <table border="0">
        <tr>
        <td class="spacer">&nbsp;</td>
    <td><a href="#" target="_blank">3.1</a></td>
        </tr>
</table>
      </div>

  </body>
</html>
Avatar billede webfear Nybegynder
02. oktober 2002 - 08:00 #6
phoenixy -> Jeg kan desværre ikke få det til at fungere med inline eller block

Nickolajdu -> Det er perfekt. Tak for det!!!
Avatar billede nikolajdu Nybegynder
02. oktober 2002 - 09:55 #7
Tak for point :)
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