¿Puede alguien decirme qué estoy haciendo mal aquí? Lo simplifiqué a continuación, pero básicamente estoy tratando de crear una lista y tener un evento de clic que haga referencia a una variable solo disponible en el ciclo.¿Cómo puedo pasar un parámetro de variable a una función anónima utilizando jquery?
for (var i = 0; i < data.length; i++) {
$newRow = $(rowFormat);
$('a:first', $newRow).click(function(i){
return function() { alert(i); }
});
$list.append($newRow);
}
Lo que hizo "mal" es llamado cierre. Le dio a cada función de clic una referencia a la misma variable 'i'. – ITroubs
@ITroubs: lo sabía claramente y trató de evitarlo (de hecho, no le dio * ninguna * referencia al 'i' utilizado en el ciclo, lo sombreó en el anónimo [externo] lista de argumentos de la función). Simplemente olvidó algunos paréntesis: vea la respuesta de David. :-) –
Sí, tienes razón. no leí el código correctamente ;-) – ITroubs