Style-Definition per js geht net.

M

MF

moin moin,

also ich habe hier eine art unternavigation und immer wen ich aucf einen menü link klicke soll die dem entsprechende navi erscheinen das ganze sieht der zeit wie folgt aus:

Die css file
Code:
#sub_navi_news { position:absolute; width:134px; height:9px; z-index:31; left:382px; top:135px; display:none; }
#sub_navi_memebers { position:absolute; width:134px; height:9px; z-index:31; left:382px; top:135px; display:none; }
#sub_navi_staff { position:absolute; width:134px; height:9px; z-index:31; left:382px; top:135px; display:none; }
#sub_navi_gb { position:absolute; width:134px; height:9px; z-index:31; left:382px; top:135px; display:none; }
#sub_navi_forum { position:absolute; width:134px; height:9px; z-index:31; left:382px; top:135px; display:none; }
#sub_navi_links { position:absolute; width:134px; height:9px; z-index:31; left:382px; top:135px; display:none; }
#sub_navi_thxto { position:absolute; width:134px; height:9px; z-index:31; left:382px; top:135px; display:none; }

Das JS
Code:
<script language="JavaScript" type="text/javascript">

var sub_navi_array = new Array();

sub_navi_array[0] = "sub_navi_news";
sub_navi_array[1] = "sub_navi_members";
sub_navi_array[2] = "sub_navi_staff";
sub_navi_array[3] = "sub_navi_gb";
sub_navi_array[4] = "sub_navi_forum";
sub_navi_array[5] = "sub_navi_links";
sub_navi_array[6] = "sub_navi_thxto";

function sub_navi(welche)
{
	for (var i=0; i<=sub_navi_array.length; i++)
	{
		document.getElementById( sub_navi_array[ i ] ).style.display = "none"; //alle sub_navi Elemente werden unsichtbar gemacht.
	}
	document.getElementById( sub_navi_array[ welche ] ).style.display = " "; //ausgewähltes sub_navi Element wird sichtbar gemacht.
}

</script>
Der Body-Inhalt
Code:
<div id="sub_navi_news"     name="sub_navi_news">bla1</div>
<div id="sub_navi_members"  name="sub_navi_members">bla2</div>
<div id="sub_navi_staff"    name="sub_navi_staff">bla3</div>
<div id="sub_navi_gb"       name="sub_navi_gb">bla4</div>
<div id="sub_navi_forum"    name="sub_navi_forum">bla5</div>
<div id="sub_navi_links"    name="sub_navi_links">bla6</div>
<div id="sub_navi_thxto"    name="sub_navi_thxto">bla7</div>
Wird nun auf ein Menüeintrag geklickt
soll das entsprechende sub_navi Element sichtbar gemacht werden,
jedoch zuvor erst alle unsichtbar.
Wenn ich nun die seite aufrufe kommt gleich nen fehler:

zeile: 44
zeichen: 3
fehler: Objekt erforderlich

das wäre der eintrag in der "for" schleife: document.getElemendById.blablabla

ich habs auch schon mit "visibility" versucht und da kam genau der selbe fehler.

findet ihr den fehler?
 
i<=sub_navi_array.length sollte i<sub_navi_array.length sein, da ARRAY.length die Anzahl einträge zurück gibt, da das array jedoch mit 0 beginnt ist das eins zu viel...

ausserdem würde ich display auf "block" setzten und nicht auf " ".
 
mittlerweile hbe ich die funktion etwas vereinfacht:

Code:
function sub_navi(neu)
{
	if(alt!=neu)
	{
		document.getElementById(sub_navi_array[ alt ]).style.visibility = "hidden";
		document.getElementById(sub_navi_array[ neu ]).style.visibility = "visible";
		alt = neu;
	}
}

das davor war eigendlich unnütz, da nie mehr als eine sub_navi zu sehen ist.
 

Neue Beiträge

Zurück