Avatar billede rasmus_a Nybegynder
12. november 2005 - 18:56 Der er 7 kommentarer og
1 løsning

expand / close

Hej

I har sikkert fået dette spørgsmål 100 gange men jeg kunne ikke lige finde en løsning der helt passede mit problem.

Jeg skal have et link på min side, eller faktisk mange, som expander en tabel med lidt tekst i.
Faktisk som på venstre side her på Eksperten. (Pillene).

På forhånd tak
Avatar billede softspot Forsker
13. november 2005 - 02:53 #1
En grov udgave kunne se således ud:

demoside.htm:
-----------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <title>Demo af vis/skjul kasse</title>
  <style type="text/css">
    .expandable { font-size: x-small; font-family: verdana, sans-serif; width:100px;}
    .expandable h1 { font-size: x-small; font-family: verdana, sans-serif; margin:0; }
    .expandable a { text-decoration:none; display:inline; }
    .expands { display:none; }
  </style>
  <script type="text/javascript" src="expandablebox.js"></script>
  <script type="text/javascript">
    window.onload = function() {
      setupExpandables();
    }
  </script>
</head>
<body>

<div class="expandable">
  <a href="#">Overskrift 1</a>
  <div class="expands">
    denne ramme, som er nummer 1, skal vise sig<br>
    når linket bliver klikket...</div>
</div>

<div class="expandable">
  <h1><a href="#">Overskrift 2</a></h1>
  <div class="expands">
    denne ramme, som er nummer 2, skal vise sig<br>
    når linket bliver klikket...</div>
</div>

<div class="expandable">
  <h1><a href="#">Overskrift 3</a></h1>
  <div class="expands">
    denne ramme, som er nummer 3, skal vise sig<br>
    når linket bliver klikket...</div>
</div>


</body>
</html>


expandablebox.js
------------------------

function setupExpandables() {
  var divs = document.getElementsByTagName("div");
  if(divs && divs.length > 0) {
    for(var i=0; i < divs.length; i++) {
      if(divs[i].getAttribute("class") == "expandable" || divs[i].getAttribute("className") == "expandable") {
        var lnk = divs[i].getElementsByTagName("a");
        if(lnk[0]) {
          lnk[0].onclick = function() { toggleExpandable(this); return false; }
        }
      }
    }
  }
}

function toggleExpandable(e) {
  if(e) {
    var pn = e;
    for(; pn && pn.getAttribute("class") != "expandable" && pn.getAttribute("className") != "expandable"; pn=pn.parentNode);
    if(pn) {
      var pdivs = pn.getElementsByTagName("div");
      if(pdivs.length > 0) {
        for(var i = 0; i < pdivs.length; i++) {
          var xpn = pdivs[i];
          if(xpn.getAttribute("class") == "expands" || xpn.getAttribute("className") == "expands") {
            xpn.style.display = (xpn.style.display == 'none' || xpn.style.display == '' ? 'block' : 'none');
            e.blur();
          }
        }
      }
    }
    else
      alert('Indeholdende div kunne ikke findes');
  }
}
Avatar billede rasmus_a Nybegynder
13. november 2005 - 10:43 #2
Tak
Avatar billede softspot Forsker
13. november 2005 - 10:49 #3
rasmus_a, normalt ville jeg (og sikkert de fleste andre herinde) forvente at du giver point til den der kommer med løsningen og ikke at du selv tager point igen... kan du ikke gøre det bedre...?
Avatar billede rasmus_a Nybegynder
13. november 2005 - 12:34 #4
shit, det var sgu ikke med vilje softspot.. kan jeg ikke lave det om?
hvorfor havde du ikke skrevet dit indlæg som et svar?
Avatar billede softspot Forsker
13. november 2005 - 18:54 #5
Det er menneskeligt at fejle og din respons vidner jo også om at det var en sådan - det synes jeg er rigtig positivt :)

Jeg giver ikke svar med det samme, da jeg foretrækker at vente indtil spørger er tilfreds med løsningen (det vil du også opleve mange andre der gør herinde) - i øvrigt er det jo heller ikke sikkert, at det er min løsning du vil bruge og så er det bare mere forvirrende for spørger at skulle håndtere en hel masse svar som ikke skal bruges...

Hvis du vil give mig point, kan du bare oprette et nyt spørgsmål, hvor du refererer til dette (med et link i beskrivelsesfeltet) og skriver at det er til mig... så skal jeg nok svare ;-)
Avatar billede rasmus_a Nybegynder
13. november 2005 - 19:10 #6
Det kan du tro! :)
http://exp.dk/spm/664196
Avatar billede softspot Forsker
13. november 2005 - 20:55 #7
Takker for point... :)
Avatar billede rasmus_a Nybegynder
13. november 2005 - 23:08 #8
:)
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