Avatar billede RJFreelance Praktikant
09. september 2010 - 20:32 Der er 3 kommentarer og
1 løsning

Vise, skjule div

Hejsa
Jeg har følgende script:


function toggleLayer( whichLayer )
{
  var elem, vis;
  if( document.getElementById ) // this is the way the standards work
    elem = document.getElementById( whichLayer );
  else if( document.all ) // this is the way old msie versions work
      elem = document.all[whichLayer];
  else if( document.layers ) // this is the way nn4 works
    elem = document.layers[whichLayer];
  vis = elem.style;
  // if the style.display value is blank we try to figure it out here
  if(vis.display==''&&elem.offsetWidth!=undefined&&elem.offsetHeight!=undefined)
    vis.display = (elem.offsetWidth!=0&&elem.offsetHeight!=0)?'block':'none';
  vis.display = (vis.display==''||vis.display=='block')?'none':'block';
}


Og det virker som det skal. med at vise lageret når man klikker på et link og skjuler det igen når der igen klikkes.

Men jeg har flere lag oveni hinanden, og hvis det ene er åbnet, når man klikker på næste link, skal de andre blive skjulte.
Nogle der har et forslag til en løsning?

Har 3 divs, rene, lars, bo og et link til hver. En idé?

Javascript er desværre ikke min stærke side.
Avatar billede tjens Nybegynder
10. september 2010 - 13:23 #1
Der er en lille demo her, hvor 3 divs overlapper: http://tjens.dk/eksperten/TextDivTabs.html

Eksemplet indeholder en del CSS, for at få det til at ligne faneblade, men det kan du evt. fjerne det meste af.

I hvert fald bygger eksemplet på en navnestandard for links og divs, som gør at det kan udbygges med flere divs uden yderligere programmering.
Der er en variabel oActive som husker den aktive div, og dermed kan javascripten altid starte med at lukke den aktive div ned.

Håber det kan bruges til inspiration.
Avatar billede webmover Nybegynder
06. oktober 2010 - 15:40 #2
En lille anbefaling. Du vil kunne gøre det med jquery meget hurtigt, da funktionaliteter, som de du ønsker er indbygget i jquery. Du kan læse om jquery her :
http://jquery.com/

med jquery ville du kunne vise op skjule forskellige html elementer blot ved at kalde dem via deres id eller klasse uden at du behøver at tænke på browser check. Her er et jquery eks. og tre links der skal skjule/vise tre forskellige div

<a class="clickcall" id="click1">click1</a>

<a class="clickcall" id="click2">click2</a>

<a class="clickcall" id="click3">click3</a>

<div class="contentcall" id="content1">some text</div>
<div class="contentcall" id="content2">some text</div>
<div class="contentcall" id="content3">some text</div>

<script>

$('.clickcall').click(function(){

  $('.contentcall').hide();

  if($(this).attr('id') == "click1")
      $('#content1').show();
  if($(this).attr('id') == "click2")
      $('#content2').show();
  if($(this).attr('id') == "click3")
      $('#content3').show();


})

</script>
Avatar billede RJFreelance Praktikant
07. oktober 2010 - 12:09 #3
Jeg fandt en løsning.. Tak!

Smid et svar begge.
Avatar billede RJFreelance Praktikant
09. december 2010 - 22:36 #4
Lukket.
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