Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/08/2010, 15:01
coke_135
 
Fecha de Ingreso: agosto-2003
Mensajes: 122
Antigüedad: 21 años, 3 meses
Puntos: 0
jQuery: Evento después de terminar each()

Hola a todos,

estoy haciendo mi primer trabajo con jQuery. Es una web con 4 secciones y un menú superior con los 6 apartados. Cuando haces click en "1" se despliega la sección correspondiente y así con las 6 opciones.

Ahora bien, tengo un problema. Si has visitado la primera vez la sección "2" y haces click en el menú en "4", quiero que "2" se pliegue automáticamente y se despliegue "4".

Para no complicarme mucho, he pensado que lo mejor era hacer un each() de todos los elementos y plegarlos antes de desplegar el siguiente. Es decir, cuando haces click en cualquier opción del menú, hago un each() de todas las secciones y las pliego, desde la "1" a la "6". Y luego despliego la del click (la"4" siguiendo el ejemplo de antes).

El problema, si uso esta opción, es que el pliegue se ejcuta más lento que el despliegue, y siempre acaban cerrándose todas las secciones:

Código HTML:
temp = this.id;
if($(this).hasClass('clicked')){
$("#menu > img").each(function (){
	pliega("#"+this.id);
});
despliega("#"+temp);
He probado también pasando un contador a la función y haciendo:
Código HTML:
//Cuando estamos en el último elemento...
if (i == 6){
     despliega("#"+temp);
}
pero también se adelanta y no funciona correctamente.

Me gustaría saber si es posible ejecutar un evento cuando termine el each(), en orden y sin adelantarse a la finalización del último elemento.

¿Alguna idea? ¡Gracias!