addEventListener, für (), index. Wie benutzt man den Verschluss? [Duplikat]

8

Ich habe diesen Code:

%Vor%

wo das Ereignis gehört wird, aber es gibt 3 -Elemente und die Warnung druckt immer 3 auf eines der Elemente (es berücksichtigt nicht den Index),

% s% items[i] sollte die Aufgabe nicht als Closure erledigen?

Danke!

    
Toni Michel Caubet 14.12.2013, 20:09
quelle

2 Antworten

9

Das ist ein klassisches Closure-Problem: Sie müssen eine neue Funktion erstellen, die nicht an die Variable 'i' gebunden ist, sondern an ihren Wert zum Zeitpunkt der Bindung:

%Vor%     
GameAlchemist 14.12.2013, 20:14
quelle
7

Nein, das dritte Argument von addEventListener ist useCapture eins. Weitere Informationen finden Sie unter MDN .

Aber Sie können verwenden:

%Vor%

oder

%Vor%

Der erste erstellt einen neuen Event-Handler für jedes Element, so dass mehr Speicher benötigt wird. Der zweite verwendet den gleichen Ereignis-Listener, verwendet aber indexOf , also ist es langsamer.

    
Oriol 14.12.2013 20:12
quelle