Avatar billede janemil Nybegynder
24. november 2008 - 12:14 Der er 3 kommentarer og
1 løsning

Lukke noder før ny åbnes

Bruger denne til at åbne og lukke divs

<script>

function HideOrShowDiv(itemno) {
    var lyr=document.getElementById('D_'+itemno);
    if (lyr.style.display=='none'){
    lyr.style.display='block';
    }
    else {
      lyr.style.display='none';
      }
}

</script>

Eksempel på div
<a href="java script:HideOrShowDiv(1001)">Link</a>
<div id=D_1001 style="display:none">
Tekst
<div>

Hvis jeg nu vil lukke åbne divs inden en ny åbne, hvad skal så tilføjes i mit script?
Avatar billede kalp Novice
24. november 2008 - 12:39 #1
jeg ved ikke hvor mange det drejer sig om, men måske lave et array med ID'er på alle divs og loop det igennem
Der hvor div id'et ikke matcher det indsendte laves der "lyr.style.display='none';" på
og der hvor det matcher laves der "lyr.style.display='block';"
Avatar billede kalp Novice
24. november 2008 - 12:53 #2
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>

<BODY>
<script>
var array = new Array();
array[0] = 'D_1001';
array[1] = 'D_1002';
array[2] = 'D_1003';

function HideOrShowDiv(itemno) {
    var lyr = document.getElementById('D_'+itemno);
    if (lyr.style.display=='none'){
    lyr.style.display='block';
    }
    else {
      lyr.style.display='none';
      }

  for(var i = 0; i < array.length; i++){
    if(document.getElementById(array[i])!= lyr)  document.getElementById(array[i]).style.display='none';
  }
}

</script>

Eksempel på div
<a href="java script:HideOrShowDiv(1001)">Link1</a>
<div id="D_1001" style="display:none">
Tekst1
</div>

<br />
<a href="java script:HideOrShowDiv(1002)">Link2</a>
<div id="D_1002" style="display:none">
Tekst2
</div>

<br />
<a href="java script:HideOrShowDiv(1003)">Link3</a>
<div id="D_1003" style="display:none">
Tekst3
</div>
</BODY>
</HTML>
Avatar billede janemil Nybegynder
24. november 2008 - 12:54 #3
Jeg kender desværre ikke IDerne på forhånd.
Avatar billede olebole Juniormester
24. november 2008 - 14:53 #4
<ole>

Den sædvanlige løsning lyder: Læg en reference til det åbne element i en global variabel:

var oActive = null;
function HideOrShowDiv(itemno) {
    if (oActive) oActive.style.display = "none";
    oActive = document.getElementById('D_'+itemno);
    oActive.style.display = "block";
}

/mvh
</bole>
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