Avatar billede roz Nybegynder
02. september 2006 - 00:48 Der er 12 kommentarer og
1 løsning

Folde ud tabel i JS

Hey.

Hvordan laver man en folde ud tabel i JS?
Det skal fungere som en normal <table> med 4-5 kolonner. Tabellen er inddelt i emner og hvert emne skal kunne foldes ud og ind med JS. Dvs. når jeg klikker på et emne eks. Servere ---> skal alle under denne kategori vises og emne teksten sal ændres til Servere <---- (blot et eksempel).

Nu er det bare jeg programmerer PHP og stinker til JS. Så hvordan kan jeg lave ovenstående?

200 point for enten link til artikel eller kode omhandlende dette.
Avatar billede madeindk Nybegynder
04. september 2006 - 08:48 #1
Hej roz, er det noget i denne her stil du mener?

<a onClick="document.getElementById('tabelNavn').style.display='block';">Fold tabellen ud</a>

<table id="tabelNavn">

<tr>
<td>Menupunkt 1</td>
</tr>

<tr>
<td>Menupunkt 2</td>
</tr>

</table>
Avatar billede olebole Juniormester
04. september 2006 - 12:53 #2
<ole>

Er det rækker eller kolonner, du vil kunne folde ind/ud?

/mvh
</bole>
Avatar billede roz Nybegynder
04. september 2006 - 14:57 #3
madeindk -  Ja præcis :) kan du lave det til mig? Altså bare et eksempel hvor jeg kan smide min egen kode ind. Skal være så den både kan folde ud og skjule med samme knap.

olebole - Rækker. Altså nedad ;) heh
Avatar billede roz Nybegynder
04. september 2006 - 14:59 #4
madeindk - Og også ændre teksten på "knappen" eller linket :)
Avatar billede madeindk Nybegynder
04. september 2006 - 16:53 #5
Du kan i princippet allerede putte dine ting i menuen nu. Hvad er det præcis du søger? Kan sagtens lave til dig så den folder samme på samme link :-)
Avatar billede roz Nybegynder
04. september 2006 - 18:26 #6
Ja det ved jeg. Mangler blot så den kan folde sammen + ændre teksten på linket der folder den sammen.
Avatar billede madeindk Nybegynder
04. september 2006 - 18:58 #7
<script type="text/javascript">
   
    function view( targetId ){
        if (document.getElementById){
                target = document.getElementById( targetId );
                  if (target.style.display == "none"){
                      target.style.display = "";
                  } else {
                      target.style.display = "";
                  }
            }
            }
           
      function hide( targetId ){
        if (document.getElementById){
                target = document.getElementById( targetId );
                  if (target.style.display == ""){
                      target.style.display = "none";
                  } else {
                      target.style.display = "none";
                  }
            }
            }
           
</script>

<div id="viserTabel" style="display:;"><a style="cursor:pointer;" onClick="hide('tabelNavn'); hide('viserTabel'); view('skjulerTabel');">Skjul tabellen</a></div>

<div id="skjulerTabel" style="display:none;"><a style="cursor:pointer;" onClick="view('tabelNavn'); view('viserTabel'); hide('skjulerTabel');">Vis tabellen</a></div>

<table id="tabelNavn">

<tr>
<td>Menupunkt 1</td>
</tr>

<tr>
<td>Menupunkt 2</td>
</tr>

</table>
Avatar billede roz Nybegynder
05. september 2006 - 00:07 #8
Virker perfekt :) Smid et svar så får du point.
Avatar billede roz Nybegynder
10. september 2006 - 18:24 #9
Nå lukker...
Avatar billede michael-inspark Nybegynder
04. november 2006 - 11:26 #10
Jeg har gjort brug af ovenstående JS som fungerer fint, lige bortset fra at tabellen er foldet ud som default, hvilket jeg ikke ønsker. Kan nogen hjælpe mig med hvordan at man får den til at være lukket som udgangspunkt??
Avatar billede roz Nybegynder
04. november 2006 - 13:55 #11
Meget enkelt egentlig. Dette skulle kunne klare det for dig:

<div id="viserTabel" style="display:none;"><a style="cursor:pointer;" onClick="hide('tabelNavn'); hide('viserTabel'); view('skjulerTabel');">Skjul tabellen</a></div>

<div id="skjulerTabel" style="display:;"><a style="cursor:pointer;" onClick="view('tabelNavn'); view('viserTabel'); hide('skjulerTabel');">Vis tabellen</a></div>

<table id="tabelNavn" style="display:none;">

<tr>
<td>Menupunkt 1</td>
</tr>

<tr>
<td>Menupunkt 2</td>
</tr>

</table>
Avatar billede michael-inspark Nybegynder
05. november 2006 - 17:18 #12
Tak. Jeg fik den del til at virke. Nu er der opstået et andet problem. Jeg bruger dette Script til at lave en lang række af Vis/skjul detaljer se:

http://sfah.intramediaserver.dk/Default.aspx?pageid=22

Jeg har brugt det samme script hver gang, og bare omdøbt TabelNavn så det er unikt til hvert titel. DVS:

<div id="viserTabel" style="display:none;"><a style="cursor:pointer;" onClick="hide('tabelNavn40'); hide('viserTabel'); view('skjulerTabel');">Skjul tabellen</a></div>

<div id="skjulerTabel" style="display:;"><a style="cursor:pointer;" onClick="view('tabelNavn40'); view('viserTabel'); hide('skjulerTabel');">Vis tabellen</a></div>

<table id="tabelNavn40" style="display:none;">

--
Problemet er at alle åbner fint, men at de ikke vil lukke igen. Det ser desuden ud som om den første Vis/Skjul detaljer bliver påvirket når man forsøger at lukke en af de andre. Er der nogen der ved hvad jeg gør galt?
Avatar billede roz Nybegynder
06. november 2006 - 16:16 #13
Du skal jo også have et unikt ID til hver af Vis/Skjul knapperne:
<div id="viserTabel" <----------- Her skal id'et laves unikt
style="display:none;"><a style="cursor:pointer;"
onClick="hide('tabelNavn40'); <---- HER  hide('viserTabel'); <---- OH HER OS

view('skjulerTabel');"> <---- OG HER SEFØLI
Skjul tabellen</a></div>

Og det skal den anden knap selvfølgelig også.
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