webForumDet fria alternativet

Öppna en meny, stäng övriga menyer

JavaScript

2 svar · 347 visningar · startad av Sasch

Medlem sedan nov. 2002830 inlägg
Frågan#1

Nu känner mig rätt frustrerad över det här. Sitter och försöker skapa ett vettigt menysystem (öppna en meny, stäng övriga). Problemet ligger väl i att jag vill ha det relativt dynamiskt ändå utan if-satser för alla alternativ eftersom det kan komma att dyka upp fler menyer. Sedan tror jag iofs arrayen kanske inte behövs så länge den inte hjälper till att hålla koll på hur många "menyer" som finns - hur många gånger det loopas för att stänga de andra.

Subfråga: Kan man förresten kolla hur många poster en array håller relativt enkelt?

javascript:


var styleArray = new Array("cookie","tool","about");
function navigationVisibility(item) {
   for (var x=0; x<=2; x++) {

       layerCheck = styleArray[x];
       var itemToggle = document.getElementById(layerCheck).style.display;

       if (layerCheck == item){
           if (document.getElementById(layerCheck).style.display == "none") {
          document.getElementById(layerCheck).style.display="block"; }
       } else {
          document.getElementById(layerCheck).style.display="none";}
   }

}

Html

<div id="foot"><a href="#" onClick="javascript: navigationVisibility('cookie');">Cookies</a> | <a href="#" onClick="javascript: navigationVisibility('tool');">More tools</a> | <a href="#" onClick="javascript: navigationVisibility('about');">About/Help</a></div>

	<div id="about"> [...] </div>

	<div id="cookie"> [...] </div>

	<div id="tool"> [...] </div>

Jag kan för allt i världen inte förstå vad det är som ställer till det...

Medlem sedan aug. 20039 340 inlägg
#2

Nåt sånt här kanske?

<script>
var styleArray = new Array("cookie","tool","about");
function navigationVisibility(item) {
   for (var x=0; x<styleArray.length; x++) {

       layerCheck = styleArray[x];
       var itemToggle = document.getElementById(layerCheck).style.display;

       if (layerCheck == item){
          document.getElementById(layerCheck).style.display="block";
       } else {
          document.getElementById(layerCheck).style.display="none";
       }
   }

}

</script>
<div id="foot"><a href="#" onClick="javascript: navigationVisibility('cookie');">Cookies</a> | <a href="#" onClick="javascript: navigationVisibility('tool');">More tools</a> | <a href="#" onClick="javascript: navigationVisibility('about');">About/Help</a></div>

	<div id="about"> [about] </div>

	<div id="cookie"> [cookie] </div>

	<div id="tool"> [tool] </div>
Medlem sedan nov. 2002830 inlägg
#3

Blev kalas :) Tack för hjälpen :)

262 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)