prega di consultare la jsfiddle: http://jsfiddle.net/LsNCa/2/JavaScript- scoping ed evento gestore variabile
function MyFunc() {
for (var i = 0; i < 2; i++) { // i= 0, 1
var myDiv = $('<div>');
myDiv.click(function(e) {
alert(i); // both the two divs alert "2", not 0 and 1 as I expected
});
$('body').append(myDiv);
}
}
var myFunc = new MyFunc();
Voglio che il div per avvisare "0" e "1", rispettivamente, quando clicco loro. Ma entrambi avvertono "2".
Quando faccio clic sui div e l'evento viene attivato, come e dove il gestore trova il valore della variabile i?
Sono consapevole che l'aggiunta di una chiusura raggiunge il mio obiettivo. Ma perché?
possibile duplicato di [Javascript infamous loop problem?] (Http://stackoverflow.com/questions/1451009/javascript-infamous-loop-problem) – elclanrs