Avatar billede voirsous Nybegynder
30. juni 2005 - 13:30 Der er 17 kommentarer og
1 løsning

Søges Klik på link, vis div. Klik på samme link, l.uk div.

Hej jeg har to javascripts funktioer der ser sådan her ud.

      function div_vis(layerID) {
      document.getElementById(layerID).style.display = "block";
      }
          function div_luk(layerID) {
        doc

Det fungere fint, men jeg kunne godt tænkte mig at kunne klikke på et obejekt og få vist en div, og kunne klikke på samme objekt og få lukket selv samme div. Som det er nu skal jeg bruge to objekte (et til at køre div_vis(), og et til at køre div_luk())

Hvordna gøres det?
Avatar billede roenving Novice
30. juni 2005 - 13:39 #1
F.eks.

function showHide(elmID){
  var st = document.getElementById(elmID).style;
  st.display = st.display != 'block' ? 'block' : 'none';
}
Avatar billede softspot Forsker
30. juni 2005 - 13:44 #2
Du kunne lave en funktion som tager højde for den aktuelle tilstand af det du skal have vist. Noget i stil med:

function div_toggle(layerID) {
    var objLayer = document.getElementById(layerID);
    if(objLayer.style.display == "none")
        objLayer.style.display = "block";
    else
        objLayer.style.display = "none";
}
Avatar billede softspot Forsker
30. juni 2005 - 13:45 #3
fair nok... roenving er bare hurtig :)
Avatar billede roenving Novice
30. juni 2005 - 14:01 #4
Velbekomme '-)
Avatar billede roenving Novice
30. juni 2005 - 14:02 #5
-- og så er det sikkert fordi, jeg er doven, og forsøger at skrive så slank kode som muligt, at jeg kan gøre det hurtigt !-)
Avatar billede softspot Forsker
30. juni 2005 - 14:03 #6
muligvis (jeg synes ellers jeg er ret doven)... eller at du bare er så cool som du er ;)
Avatar billede voirsous Nybegynder
30. juni 2005 - 14:35 #7
takker, den fungere .
Avatar billede roenving Novice
30. juni 2005 - 14:36 #8
-- og jeg takker for point ;~}
Avatar billede drinkit Praktikant
02. juli 2005 - 11:34 #9
link? vil gerne se resultatet =)
Avatar billede roenving Novice
02. juli 2005 - 11:44 #10
F.eks.

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
html,body{height:100%;margin:0px;border:0px;padding:0px;font-family:tahoma,verdana,arial,sans-serif;font-size:small;}
.menu{border:1px dotted red;cursor:pointer;}
.menupunkt{color:brown;background-color:yellow;display:none;line-height:1.5;}
.menupunkt a,.menupunkt a:link,.menupunkt a:visited{text-decoration:none;}
.menupunkt a:hover,.menupunkt a:active{text-decoration:overline underline;}
</style>
<script language="javascript" type="text/javascript">
function showHide(elmID){
  var st = document.getElementById(elmID).style;
  st.display = st.display != 'block' ? 'block' : 'none';
}
</script>
<title>Tomt dokument</title>
</head>

<body>
<div class="menu" onclick="showHide('menu1');">Punkt 1 -- TV-stationer
  <div id="menu1" class="menupunkt">
    <ul>
      <li><a href="http://dr.dk">DR</a></li>
      <li><a href="http://tv2.dk">TV2</a></li>
    </ul>
  </div>
</div>
<div class="menu" onclick="showHide('menu2');">Punkt 2 -- Søgemaskiner
  <div id="menu2" class="menupunkt">
    <ul>
      <li><a href="http://google.dk">Google</a></li>
      <li><a href="http://altavista.com">Altavista</a></li>
    </ul>
  </div>
</div>
</body>
</html>
Avatar billede drinkit Praktikant
02. juli 2005 - 11:47 #11
smukt - takker makker ;-)
Avatar billede roenving Novice
02. juli 2005 - 11:47 #12
-- og det skal da så tilføjes, at softspots løsning ikke ville virke hensigtsmæssigt, hvis man som i eksemplet har display:none; i et stylesheet, og ikke i en style-attribut på elementet, for der skal så klikkes to gange før det virker !-)
Avatar billede softspot Forsker
02. juli 2005 - 12:00 #13
ville det så være fordi der ikke er noget indhold i display-attributten og den derfor ville starte med at sætte den til "none", eller er der en anden grund til det?
Avatar billede roenving Novice
02. juli 2005 - 12:02 #14
Ja, det er fordi en style-property ikke kan aflæses af javascript, hvis ikke den er sat med javascript eller sat eksplicit inde i tagget !-)

-- præcis derfor benytter jeg den negative evaluering !o]
Avatar billede softspot Forsker
02. juli 2005 - 12:04 #15
Jeg har tidligere haft det problem du påpeger, men var ikke opmærksom på at det kunne være årsagen... cool - så lærte jeg noget mere idag :D Tak!
Avatar billede drinkit Praktikant
02. juli 2005 - 12:22 #16
hmm.. ja, jeg har lidt ala det problem i snakker om der.. med det her script..
mine layers bliver vist fra starten af.. så man skal trykke to gange på dem for at skjule dem :S har lige opr spm, hvis i gider kigge på det - der er også en anden fejl nemlig..
Avatar billede roenving Novice
02. juli 2005 - 12:32 #17
-- hvis du viser dine menuer fra starten, skal du vende betingelsen om:

  st.display = st.display != 'none' ? 'none' : 'block';
Avatar billede drinkit Praktikant
02. juli 2005 - 12:35 #18
iihh hvor fint :))
men altså, kan du lige kigge på mit spm - har stadig det andet problem!
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