webForumDet fria alternativet

Display, visa/dölja div:ar

5 svar · 1 399 visningar · startad av Anton_L

Anton_LMedlem sedan mars 200584 inlägg
#1

Hej!

Håller på med olika tabbar som ska visas/döljas när man klickar på en länk. Får det inte att funka som jag vill. Var kan felet dölja sig måntro? ;)


<script type="text/javascript">

function info()
{
document.getElementById("info").style.display = "block";
document.getElementById("infotab").style.color = "#E8CD96";
document.getElementById("booking").style.display = "none";
document.getElementById("bokningtab").style.color = "#000";
document.getElementById("villkor").style.display = "none";
document.getElementById("villkortab").style.color = "#000";
}

						
function booking()
{
document.getElementById("villkor").style.display = "none";
document.getElementById("villkortab").style.color = "#E8CD96";
document.getElementById("booking").style.display = "block";
document.getElementById("bokningtab").style.color = "#000";
document.getElementById("info").style.display = "none";
document.getElementById("infotab").style.color = "#000";
}
	
function villkor()
{
document.getElementById("booking").style.display = "none";
document.getElementById("bokningtab").style.color = "#E8CD96";
document.getElementById("villkor").style.display = "block";
document.getElementById("villkortab").style.color = "#000";
document.getElementById("info").style.display = "none";
document.getElementById("infotab").style.color = "#000";
}

</script>
                    
                    
<div class="tabmenu">

<a href="javascript:info();">
<div class="tab" id="infotab" style="color:#000;">Info</div></a>
<a href="javascript:booking();">
<div class="tab" id="bookingtab">Bokning</div></a>
<a href="javascript:villkor();">
<div class="tab" id="villkortab">Villkor</div></a>
                                            
</div>
                        
						
<div id="info" style="display:block;" class="event">Ruta 1</div>
<div id="villkor" style="display:none;" class="event">Ruta 2</div>
<div id="booking" style="display:none;" class="event">Ruta 3</div>
metalboyMedlem sedan jan. 2005953 inlägg
#2

Anton_L skrev:

Får det inte att funka som jag vill.

Är för lat för att läsa igenom din kod och leka spåkärring. Vad händer och vad vill du ska hända?

OldtimerMedlem sedan juni 201161 inlägg
#3

Du får nog bestämma dig för om tabben Bokning har id "bokningtab" eller "bookingtab". Du har skrivit olika i skriptet och på tabben.

Anton_LMedlem sedan mars 200584 inlägg
#4

Oldtimer skrev:

Du får nog bestämma dig för om tabben Bokning har id "bokningtab" eller "bookingtab". Du har skrivit olika i skriptet och på tabben.

Tack för att du uppmärksammade det. Tab är dock bara för färgen som visar vad som är aktivt. Som det är nu visas inte ens rätt div vid klick.

EDIT: Det var visst lösningen på allt! Tack!

nitro2k01Medlem sedan aug. 20039 342 inlägg
#5

I booking och villkor sätter du färgen till element. I booking() sätter du färgen på villkor och tvärtom. Dessutom har du satt färgen på ursprungstabben till #000 istället för #E8CD96.

Låt mig annars rekommendera följande struktur. Koden loopar igenom en lista med namnen på tabbarna. Om namnet matchar strängen som skickas med till funktionen så visas tabben, annars döljs den.

<script type="text/javascript">

function showTab(whichtab){
    // Lista över namnen på tabbarna
    var tabNames = ["info", "booking", "villkor"];

    // loopa igenom listan
    for(var i=0; i<tabNames.length; i++){
        if(whichtab == tabNames[i]){
            // Om det angivna namnet matchar listnamnet...
            document.getElementById(tabNames[i]).style.display = "block";
            document.getElementById(tabNames[i]+"tab").style.color = "#E8CD96";
        }else{
            // Om det angivna namnet inte matchar listnamnet...
            document.getElementById(tabNames[i]).style.display = "none";
            document.getElementById(tabNames[i]+"tab").style.color = "#000";
        }
    }
}
</script>
                    
                    
<div class="tabmenu">

<a href="javascript:showTab('info');">
<div class="tab" id="infotab" style="color:#E8CD96;">Info</div></a>
<a href="javascript:showTab('booking');">
<div class="tab" id="bookingtab">Bokning</div></a>
<a href="javascript:showTab('villkor');">
<div class="tab" id="villkortab">Villkor</div></a>
                                            
</div>
                        
						
<div id="info" style="display:block;" class="event">Ruta 1</div>
<div id="villkor" style="display:none;" class="event">Ruta 2</div>
<div id="booking" style="display:none;" class="event">Ruta 3</div>
voigtann1Medlem sedan juni 20019 519 inlägg
#6

Okej... ett inline-element (dina a-element) få inte ha ett block-element (dina div-element) om du nu skall validera din HTML kod.

Hur mycket få man ändra i din kod?

Med jquery (tjat) så bli det så mycket enklare att manipulera dina element:
http://jsbin.com/ojezex/3/edit

där man bara säger vad som skall visas och döljas + sätta en CSS klass(där design borde ligga) på hur det skall se ut om man har markerat

132 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)