Tengo un proceso de tres pasos totalmente dependiente de JavaScript y Ajax para cargar datos y animar el proceso de un paso al siguiente. Para complicar aún más las cosas, la transición (hacia delante y hacia atrás) entre los pasos está animada :-(. A medida que avanza el usuario a través del proceso, aparecen los delimitadores que muestran el paso actual y los pasos anteriores. Si hacen clic en un paso anterior, los devuelve a el paso anterior.Cómo agregar el controlador de eventos con argumentos a una matriz de elementos en Javascript?
En este momento, todo el proceso (hacia delante y hacia atrás) funciona correctamente, si comienza en el paso 1, pero si pasa directamente al paso 3, los anclajes del paso 1 y 2 también realizan el mismo acción como paso 3.
Esta es la parte del código que recorre todos los pasos hasta el paso actual en el que el usuario estaría y muestra cada anclaje a su vez y asigna la función adecuada al evento click:
for (var i = 0; i < profile.current + 1; i++) {
if ($('step_anchor_' + i).innerHTML.empty()) {
var action = profile.steps[i].action;
var dao_id = profile.steps[i].dao_id;
$('step_anchor_' + i).innerHTML = profile.steps[i].anchor;
$('step_anchor_' + i).observe('click', function(){
pm.loadData(action, dao_id, true);
});
Effect.Appear('step_anchor_' + i, {
duration: 1,
delay: (down_delay++)
});
}
}
Sé que el problema radica en la forma en que se pasan los parámetros de acción y dao_id. También he intentado pasar profile.steps [i] .action y profile.steps [i] .dao_id pero en ese caso tanto el perfil como yo o al menos yo estamos fuera del alcance.
¿Cómo lo hago para poder asignar los parámetros de acción y dao_id correctamente para cada paso? (Si hace alguna diferencia, estamos usando Prototype y Scriptaculous)
Parece casi hacer lo que tengo :-(Sin embargo, ahora se hace que el evento a dispara dos veces y simplemente se descarga automáticamente. –
Primero, asegúrate de estar llamando al ciclo solo una vez. Además, ¿a qué te refieres con "se descarga"? ¿Que el evento no vuelva a sonar? – Benry
Solo deseo que tenía más votos ascendentes ... Muchas gracias.Me avergüenza ahora pensar cuánto tiempo me golpeé la cabeza tratando de resolver eso. –