Se ejecuta por la forma en la que la colocaste. Al ser una llamada de retorno y querer pasarle un argumento, lo correcto sería hacerlo de esta manera:
Código Javascript
:
Ver original$("#"+datos[i].idruta+".fila").on("click", function(){
detalles(datos[i])
});
Sin embargo, al ser contenido dinámico, lo más adecuado es que delegues el evento de la siguiente manera:
Código Javascript
:
Ver original$("#contenedor").on("click", ".fila", function(){
//Aquí ejecutas tus instrucciones
});
Obviamente, esto debe de ir fuera del bucle. Incluso puede ir por fuera del método
$.ajax()
. Noto también que usas la función
eval()
, la cual no se recomienda su uso por medidas de seguridad, razón por la cual te desaconsejo su uso.
Saludos