Avatar billede fun22 Nybegynder
03. november 2005 - 11:29 Der er 9 kommentarer og
1 løsning

Hvorfor virker det her ikke?

Hej

Jeg har følgende kode i min <head>:

<script language="JavaScript">
function menu(name) {

    if (name == 'bruger'){
    document.getElementById("bruger").style.display = 'block';
    document.getElementById("posthuset").style.display = 'none';
    document.getElementById("debatten").style.display = 'none';
    document.getElementById("chat").style.display = 'none';
    document.getElementById("vitser").style.display = 'none';
    }
    if (name == 'posthuset'){
    document.getElementById("bruger").style.display = 'none';
    document.getElementById("posthuset").style.display = 'block';
    document.getElementById("debatten").style.display = 'none';
    document.getElementById("chat").style.display = 'none';
    document.getElementById("vitser").style.display = 'none';
    }
    if (name == 'debatten'){
    document.getElementById("bruger").style.display = 'none';
    document.getElementById("posthuset").style.display = 'none';
    document.getElementById("debatten").style.display = 'block';
    document.getElementById("chat").style.display = 'none';
    document.getElementById("vitser").style.display = 'none';
    }
    if (name == 'chat'){
    document.getElementById("bruger").style.display = 'none';
    document.getElementById("posthuset").style.display = 'none';
    document.getElementById("debatten").style.display = 'none';
    document.getElementById("chat").style.display = 'block';
    document.getElementById("vitser").style.display = 'none';
    }
    if (name == 'vitser'){
    document.getElementById("bruger").style.display = 'none';
    document.getElementById("posthuset").style.display = 'none';
    document.getElementById("debatten").style.display = 'none';
    document.getElementById("chat").style.display = 'none';
    document.getElementById("vitser").style.display = 'block';
    }
}
</script>

Og så har jeg mine <div>:

<div id="bruger" style="display: block">
Forsiden<br>
Din profil<br>
Dine gallerier<br>
Din gæstebog<br>
Opslagstavlen<br>
Retningslinier<br>
Mærkedage
</div>
<div id="posthuset" style="display: none">
Indbakke<br>
Ny meddelelse<br>
Opdater<br>
Indstillinger<br>
Søg<br>
</div>

Men når jeg så kalder med: <a href="inbox.asp" onclick="menu(posthuset)">

Så sker der ikke noget..

Nogen der kan se hvad der er galt?
Avatar billede softspot Forsker
03. november 2005 - 11:35 #1
<a href="inbox.asp" onclick="menu('posthuset')">
Avatar billede skovenborg Nybegynder
03. november 2005 - 15:15 #2
Det kan også skrives en anelse kortere (meget endda), hvis du gør sådan:
<script type="text/javascript">
var activeElm;
function menu(name) {
  if (activeElm) {
      activeElm.display = "none";
  }
  activeElm = document.getElementById(name).style;
  activeElm.display = "block";
}
</script>

Scriptet kaldes selvfølgelig på samme måde (som softspot's udgave altså ;-)
Avatar billede fun22 Nybegynder
03. november 2005 - 17:35 #3
softspot > tak det hjalp ;)

skovenborg > Problemet er at den jo ikke skjuler de andre elementer..
Avatar billede softspot Forsker
03. november 2005 - 17:42 #4
Velbekomme :)

Jeg skulle dog mene at skovenborgs fungerer, da den gemmer det element som aktuelt er synlig og skjuler det som det første i funktionen...
Avatar billede fun22 Nybegynder
03. november 2005 - 17:48 #5
det gør det ikke.. Det viser bare det nye element men de gamle er der stadig..
Avatar billede skovenborg Nybegynder
03. november 2005 - 18:30 #6
mærkeligt. Men foresten manglede der også noget:
var activeElm;
function menu(name) {
  if (activeElm) {
      activeElm.display = "none";
  }
  activeElm = document.getElementById(name).style;
  activeElm.display = "block";
}
window.onload = function() {
    activeElm = document.getElementById('bruger').style;
}

Egentlig plejer man jo også at returnere false ved brug af onclick på links:
<a href="inbox.asp" onclick="menu('posthuset');return false">
Avatar billede softspot Forsker
03. november 2005 - 18:32 #7
Det lyder meget mærkeligt... det ser ellers korrekt ud (selvom jeg da ville have valgt at gemme elementet og ikke style-objektet - men det burde give samme resultat)...?
Avatar billede fun22 Nybegynder
03. november 2005 - 18:34 #8
så virker det ;) Smider du et svar så får du også 30 points..
Avatar billede skovenborg Nybegynder
03. november 2005 - 18:44 #9
næ, det skam ligemeget. Det var jo heller ikke det spørgsmålet gik ud på, så den er på min egen regning ;-)
Avatar billede softspot Forsker
03. november 2005 - 19:40 #10
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