Einen Eventlistener mit Hilfe einer for-Scheife erzeugen

DerAskTyp

Mitglied
Ich will mit einer for-Schleife jedem Bild einen EventListener verpassen => Wenn man auf das bild mit der Maus drüber geht das es größer erscheint. Habe dafür eine Fo-Schleife gesehen.
Ich habe es getestet und es kommt in die die for-Schleife 5 mal aber, wenn ich mit mit der Maus über ein Bild wische erscheint es nit groß. Ich finde den Fehler in meinem Code nicht.
 

Anhänge

  • javascript05.PNG
    javascript05.PNG
    6,7 KB · Aufrufe: 19
  • javascript04.PNG
    javascript04.PNG
    10,2 KB · Aufrufe: 17
Bitte, poste den Code lieber in Code-Tags statt als Screenshot.
Dies ist ein gängiges Problem beim Registrieren von Eventlistenern in einer Schleife: Die Funktion wird nicht gleich beim Registrieren ausgeführt sondern erst später beim Mouseover. Dann hat die Variable idxBilder ihren Endwert anzahlBilder und die Funktion showImageInLarge findet kein Bild. Abhilfe so:
Code:
dein_element.addEventListener("mouseover", function(idx) {
    return function() {showImageInLarge(idx + 1);};
}(idxBilder));
Die äußere Funktion mit dem Eingangsparameter wird jetzt gleich beim Registrieren aufgerufen und innerhalb der inneren Funktion hat der Index den richtigen Wert.
 
Anstatt onload im body tag zu verwenden rate ich dir jQuery zu verwenden und dort mit $(document).ready() zu arbeiten.

Dann kannste mit jQuery auch relativ leicht deinen Eventlistener anfügen:
Code:
$("#bilder img").hover(function(){
alert("Hover Start");
},
 function(){
alert("Hover Ende");
});
In der Funktion kannst du dann jeweils mit $(this) auf das gehoverte Bild zugreiffen und damit machen was du willst.
 

Neue Beiträge

Zurück