23/12/2015, 20:55
|
| 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 |