Avatar billede packo Nybegynder
20. oktober 2007 - 19:41 Der er 6 kommentarer og
1 løsning

Ekstra detalje ToggleShow

Hey, Eksperter

Link: http://www.pixel-pimp.dk/svejs/

Jeg står med denne kode:
<h4>Produkter</h4>
<ul>
<li><a href="#" title="?" onclick="ToggleShow('svejsemaskiner')">Svejsemaskiner</a></li>
    <ul id="svejsemaskiner" style="display:none">
    <li><a href="#" title="?"><i>- Migatronic</i></a></li>
    <li><a href="#" title="?"><i>- Selco</i></a></li></ul>

Jeg kunne godt tænke mig, at hvis man f.eks. først trykker på "Svejsemaskiner" og derefter "Svejseslanger og sliddele," så skal den først 'åbne' lukke sig igen, så det kun er muligt at have én 'åben' ad gangen.

Er det noget, I kan hjælpe mig med? :)
Avatar billede Slater Ekspert
20. oktober 2007 - 19:47 #1
Prøv med det her:

<script type="text/javascript">
last_elm = null;
function ToggleShow(elm){
    elm=document.getElementById(elm);
    elm.style.display=elm.style.display=="none"?"block":"none";
    if (last_elm)
        last_elm.style.display="none";
    last_elm = elm;
}
</script>
Avatar billede soerenlyn Nybegynder
20. oktober 2007 - 19:48 #2
Du kunne opbevare hvilken menuen der er åben i en variabel.
Fx:
var menuopen="svejsemaskiner"

Så kunne du lave en funktion der skifter hvilken der er åben:
function ToggleShow(id){
  document.getElementById(menuopen).setAttribute("display","none");
  document.getElementById(id).setAttribute("display","inline");
  menuopen=id;
}

Som så bliver kaldt:
<a href="java script:void(0)" onclick="ToggleShow('....')">....</a>
Avatar billede packo Nybegynder
20. oktober 2007 - 19:56 #3
Fedt, Viperine

Kan du ikke lige skrive et svar, så du kan få dine point? ;)
Avatar billede olebole Juniormester
20. oktober 2007 - 20:21 #4
<ole>

soerenlyn >> Der er tale om style-properties. Den slags må ikke sættes med setAttribute, men skal sættes, som viperine viser  ;o)

/mvh
</bole>
Avatar billede soerenlyn Nybegynder
20. oktober 2007 - 20:23 #5
Ja det opdagede jeg godt lige efter jeg havde postet - bommert :P
Avatar billede Slater Ekspert
21. oktober 2007 - 00:36 #6
Svar :)
Avatar billede roenving Novice
21. oktober 2007 - 05:27 #7
-- og der kan spares en smule:

<script type="text/javascript">
last_elm = null;
function ToggleShow(elm){
    if (last_elm)
        last_elm.style.display="none";
    last_elm = document.getElementById(elm);
    last_elm.style.display = last_elm.style.display!="block"?"block":"none";
}
</script>

-- hvilket også tager højde for tilfælde, hvor display er sat i et stylesheet !-)
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