• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Bildewechsel

m.nok

New member
Hallo Leute!
Ich bin neu in diesem Forum, also seht bitte über "dumme Fragen" hinweg.
Wahrscheinlich sehe ich an der Lösung vorbei, aber ich habe folgendes Problem:
Ich habe eine gewisse Anzahl von Bildern mit dazugehörigem Text. Der Aufruf der Funktion für den Bildwechsel erfolgt jeweils über einen Link. Ich würde den Link generalisieren d.H. errechnen lassen, sodaß ich nicht für jeden Bildwechsel einen eigenen Link benötige.

Hier der Code:

<script language="JavaScript">
arrImg = new Array();
arrImg[1] = new Image();
arrImg[1].src = 'images/bild-1.jpg;
arrImg[1].txt = 'Das ist Bild 1';
arrImg[2] = new Image();
arrImg[2].src = 'images/bild-2.jpg;
arrImg[2].txt = 'Das ist Bild 2';

function swapImage(imgName, intImg){
document.getElementById(imgName+"_imgID").src = arrImg[intImg].src; document.getElementById(imgName+"_outID").innerHTML = arrImg[intImg].txt;
return false;
}
</script>


Im Body der Aufruf:

<body>
<a class="link" href="#" onclick="return swapImage('start', 1);">1</a>
<a class="link" href="#" onclick="return swapImage('start', 2);">1</a>
</body>

Kann mir bitte jemand helfen?
 
Danke vorerst für die Antwort.

arrImg = new Array();
arrImg[1] = new Image();
arrImg[1].src = bild1;
arrImg[1].txt = text1;
arrImg[2] = new Image();
arrImg[2].src = bild2;
arrImg[2].txt = text2;

function swapImage(imgName, intImg){
document.getElementById(imgName+"_imgID").src = arrImg[intImg].src;
document.getElementById(imgName+"_outID").innerHTML = arrImg[intImg].txt;
return false;
}

Die function funktioniert einwandfrei, mein Problem liegt eher im Link.
Ich möchte nicht für jeden Aufruf der Funktion swapImage einen eigenen Link sondern stelle mir das folgendermaßen vor:
Anstatt <a class="link" href="#" onclick="return swapImage('start',1);">1</a>
<a class="link" href="#" onclick="return swapImage('start',2);">2</a> etc.
sollte nur ein "dynamischer" Link auf der Seite stehen welcher sich je nach Anzahl der Bilder "dupliziert".
ev. so?
for (var i in arrImg){
Wie kann der Link aufgebaut sein?
}
 
Das ist mal eines der seltenen Einsatzgebiete für document.write()...
Code:
for (var i in arrImg)
ist keine Gute Idee bei Array - da ist besser
Code:
for (var i = 0; i < arrImg.length; i++)
- wobei du noch beachten musst, dass ein Array normalerweise bei 0 beginnt und nicht bei 1...
 
Danke kkapsner und Junkee[] für die Hinweise.

Soweit funktioniert der Link mit
document.write('<a class="link" href="#" onclick="return swapImage('start', 1);">' + i + '</a>');
nur wie bekomme ich das "i" in swapImage('start', 1)?
 
Das dachte ich auch, aber scheinbar mischen sich die beiden ' bei 'start' ein.
so geht es jedenfalls nicht:
document.write('<a class="link" href="#" onclick="return swapImage('start',' + i + ');">' + i + '</a>');
 
Zurück
Oben