juewi: weiter im Programm: Script-Verbesserung

Beitrag lesen

Nehmen wir also an, ein Dokument enthält 20 Links. Wir iterieren über die Collection document.links mit einer http://de.selfhtml.org/javascript/sprache/schleifen.htm#for@title=for-Schleife:

var a = document.links;
        function tu_was() {
          for (var i = 0; i < a.length; i++) {
            a[i].style.color = 'blue';
          }
        }

i wird solange inkrementiert, bis es gleich a.length ist (20). Dann stimmt die Abbruchbedinung: i < a.length nicht mehr. Die Schleife bricht ab, i hat den Wert 20.

Also: erhöhe "i" von 0 ausgehend um 1 solange "i" kleiner als die Anzahl der Links ist. Bei jedem Schleifendurchlauf wird nach der Reihe jedem Link die Farbe blau verpasst. Richtig?

Daher, wo hast Du die alert-Meldung eingebaut?

So:

  
var a = document.links;  
window.onload = function() {  
for (var i = 0; i < a.length; i++) {  
  if (a[i].className == 'fotolink') {  
    a[i].onclick = function() {  
      document.aktuelles_foto.src= this.href;  
      alert("aktueller Link: " + this.href + "; dazugehöriger Index: " + i);  
      return false;  
      }  
    }  
  }  
}

Bau ich den Code woanders ein nehm ich die Schleife mit und die Alerts laufen von 0 - 55 (sind 56 Links) bei Seitenaufruf durch. Komm gedanklich auch nicht mit, an welcher Stelle jetzt das gerade aktive "i" erreicht werden kann. Das jeweilige Linkziel wird über this.href korrekt angezeigt, daneben aber immer nur die Summe aller Links. ?

»» noch ein "vor" und "zurück" einzubauen, mit dem der User - unabhängig, welches Foto gerade aktiv ist - die Fotos durchblättern kann.

Dafür bräuchtest Du eine weitere Funktion. Um sie zu realisieren, gibt es zwei Ansätze. Wenn Die Bilder durchlaufend ohne Unterbrechung nummeriert sind, kannst Du direkt mit dem Bilddateinamen arbeiten, das ist hier:
http://www.atomic-eggs.com/roadster/20040228/index2.shtml
der Fall.

Alle Fotos sind von 001 weg aufsteigend benannt wobei ich mich erinnere dass die führenden Nullen hier ein Problem ergeben und ich eher von 1001 beginnen sollte. Hiesse wieder Massen-Umbenennungen aber ich seh mir Dein Beispiel ein weiteres mal an und hoffe, ich verstehs ;-)