Avatar billede jimpp Nybegynder
05. oktober 2006 - 12:13 Der er 7 kommentarer

Sæt alle elementer til style.display lige med "none"

Okay skal se om jeg kan formulere det fornuftigt :)

Mit simple script som det ser ud nu:

<script type="text/JavaScript">
function VisOgLoad(value)
{
  document.getElementById("menu_"+value).style.display = "";
  document.getElementById("menu_0").style.display = "none";
}

function LukOgLoad(value)
{
  document.getElementById("menu_"+value).style.display = "none";
  document.getElementById("menu_0").style.display = "";
}
</script>

Og det bliver så brugt her:

<table style="font-size:10pt;" cellpadding="2" cellspacing="0" border="0" width="100%">
  <tr>
    <td class="TDmenu1" onmouseover="this.className='TDMenu2';java script:VisOgLoad(1);" onmouseout="this.className='TDMenu1';java script:LukOgLoad(1);" width="10%">Punkt 1</td>
    <td class="TDmenu1" onmouseover="this.className='TDMenu2';java script:VisOgLoad(2);" onmouseout="this.className='TDMenu1';java script:LukOgLoad(2);" width="10%">Punkt 2</td>
    <td class="TDmenu1" onmouseover="this.className='TDMenu2';java script:VisOgLoad(3);" onmouseout="this.className='TDMenu1';java script:LukOgLoad(3);" width="10%">Punkt 3</td>
    <td class="TDmenu1" onmouseover="this.className='TDMenu2';java script:VisOgLoad(4);" onmouseout="this.className='TDMenu1';java script:LukOgLoad(4);" width="10%">Punkt 4</td>
    <td class="TDmenu1" onmouseover="this.className='TDMenu2';java script:VisOgLoad(5);" onmouseout="this.className='TDMenu1';java script:LukOgLoad(5);" width="10%">Punkt 5</td>
    <td class="TDmenu1" onmouseover="this.className='TDMenu2';java script:VisOgLoad(6);" onmouseout="this.className='TDMenu1';java script:LukOgLoad(6);" width="10%">Punkt 6</td>
    <td class="TDmenu1" width="40%">&nbsp;</td>
  </tr>
</table>
    <div id="menu_0"></div>
    <!-- Undermenuerne -->
    <div id="menu_1" onmouseover="java script:VisOgLoad(1);" style="display:none;">
      Dette er div nummer 1
    </div>
    <div id="menu_2" onmouseover="java script:VisOgLoad(2);" style="display:none;">
      Dette er div nummer 2
    </div>
    <div id="menu_3" onmouseover="java script:VisOgLoad(3);" style="display:none;">
      Dette er div nummer 3
    </div>
    <div id="menu_4" onmouseover="java script:VisOgLoad(4);" style="display:none;">
      Dette er div nummer 4
    </div>
    <div id="menu_5" onmouseover="java script:VisOgLoad(5);" style="display:none;">
      Dette er div nummer 5
    </div>
    <div id="menu_6" onmouseover="java script:VisOgLoad(6);" style="display:none;">
      Dette er div nummer 6
    </div>


Problemmet:

Når jeg vælger et nyt menu punkt - vil jeg gerne have at alle div'erne bliver sat til style.display = "none", altså menu_* skal sættes til style.display = "none", når VisOgLoad kaldes. Inden document.getElementById("menu_"+value).style.display = "";

Hvordan gør jeg dette?
Avatar billede sw_red_6 Nybegynder
05. oktober 2006 - 12:15 #1
kan du ikke lave en for som tæller op til value og sætter style.displat = "none" ?
Avatar billede jimpp Nybegynder
05. oktober 2006 - 12:42 #2
Jo, det var min første tanke... Men fik så afvide (fra højere magter) at mængden af under menuer kunne variere, så "de" helst vil have det mere dynamisk.
Avatar billede jimpp Nybegynder
05. oktober 2006 - 13:40 #3
Nå fandt en løsning, men måske kan en eller anden hjælpe mig med at skifte className inde i mit script. Sådan så at det valgte menu punkt beholder TDmenu2 class'en ind til der vælges et nyt menu punkt?

<script type="text/JavaScript">
function VisOgLoad(value)
{
  document.getElementById("menu_"+value).style.display = "";
  document.getElementById("menu_0").style.display = "none";
}

function LukOgLoad(value)
{
  document.getElementById("menu_"+value).style.display = "none";
  document.getElementById("menu_0").style.display = "";
}
</script>
Avatar billede jimpp Nybegynder
05. oktober 2006 - 14:15 #4
Avatar billede roenving Novice
05. oktober 2006 - 17:18 #5
Den simple udgave af vis ny/skjul gammel hedder 'gem den gamle' !-)

<script type="text/JavaScript">
var oldDiv = null;
function VisOgLoad(value)
{
  if(oldDiv)
    oldDiv.display = "none";
  oldDiv = document.getElementById("menu_"+value).style;
  oldDiv.display = "";
  document.getElementById("menu_0").style.display = "none";
}

function LukOgLoad(value)
{
  document.getElementById("menu_"+value).style.display = "none";
  document.getElementById("menu_0").style.display = "";
}
</script>

-- og så er det ikke en specielt god ide at skifte klasse on-the-fly, slet ikke, når du sikkert kun ændrer een property (oftest baggrundsfarven !-)

-- så ændr den i stedet !o]
Avatar billede jimpp Nybegynder
22. januar 2007 - 19:51 #6
Svar engtang så lukker jeg
Avatar billede roenving Novice
23. januar 2007 - 06:05 #7
Oki '-)
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