Javascript Array Problem

Mazzok

Grünschnabel
Hallo
Ich hab noch ein problem bei vollgendem Javascript Code
Beim klicken auf den Button tutsich leider garnichts, er soll aber das nächste Bild zeigen,
Mittels eines Counters 1...99 werden die Bilder durchlaufen, wobei der Counter immer um 2 erhöht wird. Dieser Counter steckt in einem Array (myarray) und hat am anfang den wert 1.soll dann also von 1,3,5,7,9 weitergehen bis 99. Bilder sind vorhanden und im richtigen Ordner
vielleicht köännt ihr mir weiterhelfen?
Lg
Maz
Code:
<html>
	<head>
		<title>Report for SOMs</title>
	<script language="JavaScript" type = "text/javascript">

sdhArray = new Array(1);
sdhArray[0] ="1";


function next(anzahl,runId){
if(sdhArray[runId] == anzahl){
document.getElementById("sdh_"+ runId +"_"+sdhArray[runId]).style.display='none';
document.getElementById("sdh_"+ runId +"_"+1).style.display='block';
sdhArray[runId]=1;
}
else{
document.getElementById("sdh_"+ runId +"_"sdhArray[runId]).style.display='none';
document.getElementById("sdh_"+ runId +"_"+(sdhArray[runId]+2)).style.display='block';
sdhArray[runId]+=2;
}}
}};
</script>

</head>
<body>

<center><div id="sdh_0_1" style="display:block"><img src="images\SDH_pics_0\s1_0_SDH_Visualization.jpg"></div>
<div id="sdh_0_3" style="display:none"><img src="images\SDH_pics_0\s3_0_SDH_Visualization.jpg"></div>
...
<div id="sdh_0_99" style="display:none"><img src="images\SDH_pics_0\s99_0_SDH_Visualization.jpg"></div>
<input type="button" name=">>" value=">>" onclick="javascript:next(99,0)">
</body>
</html>
 
Zuletzt bearbeitet:
Moin,

1. Was ist sdhArray? :confused:
2.
Code:
document.getElementById("sdh_"+ runId +"_"sdhArray[runId]).style.display='none';
...dort fehlt ein +
 
sorry im obrigen code gibt es einiige fehler

Ich habe in diesem array nur zahlen stehen, die Indezes für Bilder beinhalten,(jeweils ungerade zahlen, 1,3,5,usw..99) die durch einen klick auf den Button ">>" weitergeklickt werden
(Änlich wie in einem DFaumenkino, das erste Bild ist sichtbar)
die kennung eines div elementzs ist dabei sdh_runiD_picnummer
picnummer = 1..99
runID ist die Nummer des Runs der javascript methode, für jeden Run muss das array um eins größer werden, dieses will ich /Element durchlaufen
In diesem fall steht die runId auf 0, deshalb auch nur ein einelementiges Array
ich habs jetzt so gemacht dass ich im html code eine funktion aufrufe die mir dieses Array instanziert. In diesem Fall enthält es nur ein Element, später soll die funktion next aber hä#ufiger verwendet werden. Da die einzelnen Knöpfe dann nur spezielle Div elemente behandeln sollen, brauch ich mehrere Counter für die indezes
(Sonst wird durech klicken des buttons an einer anderen stelle im html immer eine änderung an der falschen stelle durchgeführt)

IIch komm einfach nichtdrauf was falsch sein sollte! :(

Lg
maz

Code:
<html>
<head>	
<script language="JavaScript" type = "text/javascript">
...
function init(){
var sdhArray = new Array(1);
sdhArray[0] = 1;
}
...
function next(anzahl,runId){
if(sdhArray[runId] == anzahl){
document.getElementById("sdh_"+ runId +"_"+sdhArray[runId]).style.display='none';
document.getElementById("sdh_"+ runId +"_"+1).style.display='block';
sdhArray[runId]=1;
}
else{
document.getElementById("sdh_"+ runId +"_"+sdhArray[runId]).style.display='none';
document.getElementById("sdh_"+ runId +"_"+(sdhArray[runId]+2)).style.display='block';
sdhArray[runId]+=2;
}}
</script>
</head>
<body>
....
<script type = "text/javascript">
init();
</script>
......
<div id="sdh_0_1" style="display:block"><img src="images\SDH_pics_0\s1_0_SDH_Visualization.jpg"></div>
<div id="sdh_0_3" style="display:none"><img src="images\SDH_pics_0\s3_0_SDH_Visualization.jpg"></div>
...
<div id="sdh_0_99" style="display:none"><img src="images\SDH_pics_0\s99_0_SDH_Visualization.jpg"></div>
<input type="button" name=">>" value=">>" onclick="javascript:next(99,0)">
.....
</html>
 
Zuletzt bearbeitet:
Interessant das Array is angeblich undefiend, weil bei der Zeile 13
if(sdhArray[runId] == anzahl) eine exception geworfen wird

offenbar wird das array wieder gelöscht nach der methode init(), kann das sein?
 
Alles klar, das Probelm wurde soeben gelöst, wie vermutet lebt die Variable sdhArray nursolange wie sie in der methode benutzt wird, wenn sie dort neu instanziert wird

das proboem kann gelöst werden wenn man die variable shcon vorher instanziert

also

var array

...
function init(){
array = new Array();
...
}


Danke für die Hilfe trotzdem!
Lg
Maz
 

Neue Beiträge

Zurück