Ver Mensaje Individual
  #2 (permalink)  
Antiguo 23/12/2015, 20:55
Avatar de zerokilled
zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 8 meses
Puntos: 1485
Respuesta: Problema inexplicable

buenas!

tu problema es por los eventos registrados en elementos jerarquicos. es decir, tienes dos listener iguales (onclick) en elementos donde hay una relacion de parentesco. debido a la propagacion de eventos, el primer listener (cerrar) captura el evento y luego el mismo evento es capturado por los proximos listener (abrir).

a modo de demostracion, si pones un alert en la funcion cerrar, veras que en efecto se "cierra" el contenido, pero tan pronto cierras el alert, nuevamente se abre el contenido.

hay varias soluciones. la mas facil de recordar y entender es reubicar el evento abrir en otro elemento que no sea un ancestro directo del elemento que tiene el evento cerrar. por ejemplo,en un SPAN seguido de la apertura de ARTICLE.

la otra solucion es detener la propagacion del evento al invocarse cerrar. basicamente invocas el evento con el argumento event. luego en la funcion invocas arguments[0].stopPropagation.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 23/12/2015 a las 21:04