2017-01-24 3 views

Antwort

2

Dies ist eine bekannte issue. Wenn Sie wie dieser Wert von i Änderungen durchlaufen, bevor die Zeitüberschreitungsfunktion ausgeführt wird, müssen Sie den Wert i für jede Ausführung kopieren.

Die einfachste Lösung, es zu einem separaten Verfahren passieren ist, etwa so:

for(i=0;i<10;i++){ 
    addToDocument(i); 
} 

function addToDocument(i){ 
setTimeout(function(){ 
     document.write(i); 
    },(i*1000)); 
} 

Das Problem mit Javascript, im Gegensatz zu Java ist, dass es nicht i als endgültig innerhalb Clusure nicht behandeln, das ist, warum Sie brauchen um den Wert zu kopieren.

+0

Ich hoffe, es wird Ihren Fall lösen, wenn ja bitte schließen Sie das Problem :) – Beri