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!