JQuery - ¿cómo cerrar submenu al dar click tanto fuera de el como a otro submenu hermano?

 
Vista:
Imágen de perfil de Edwing

¿cómo cerrar submenu al dar click tanto fuera de el como a otro submenu hermano?

Publicado por Edwing (14 intervenciones) el 02/01/2017 22:37:20
Buen día, agradecería mucho si me colaboran con esto, resulta que necesito que al dar click fuera de un submenu desplegado, este se recoja (cuestión que ya logré hacer), pero necesito que también lo haga si le doy click a otro submenu hermano, pues al hacerlo me quedan ambos menús desplegados, adicionalmente se debe mantener que cuando se despliegan los submenus un icono con un triangulo hacia abajo cambia de color verde a rojo y viceversa; comparto un enlace de codepen para que puedan visualizar mejor el código y así hacerme entender mejor. De antemano muchas gracias. http://codepen.io/EdwingGit/pen/WReQKN
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Edwing

¿cómo cerrar submenu al dar click tanto fuera de el como a otro submenu hermano?

Publicado por Edwing (14 intervenciones) el 03/01/2017 00:36:00
Ya me colaboraron y lo he solucionado :D mil gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 302
Oro
Ha mantenido su posición en JQuery (en relación al último mes)
Gráfica de JQuery

¿cómo cerrar submenu al dar click tanto fuera de el como a otro submenu hermano?

Publicado por xve (673 intervenciones) el 03/01/2017 07:55:15
Hola Edwin, podrías compartirnos como lo has solucionado?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Edwing

¿cómo cerrar submenu al dar click tanto fuera de el como a otro submenu hermano?

Publicado por Edwing (14 intervenciones) el 03/01/2017 15:54:48
Ok, con gusto, una solución con la que me han colaborada va enfocada a darle al elemento interactuado $(this) (que hace referencia al elemento que contiene al submenu y que es al que se le da click para desplegar dicho submenu) darle una clase al clickearlo (que en mi ejemplo la he llamado "mactive") para saber que esta activo (es decir, abierto), y mediante una condición comparar que si el siguiente click es sobre otro elemento que no tiene dicha clase (indicando que no está desplegado o "abierto"), entonces hay que cerrar el que si está abierto o desplegado con un slideUp (es decir al que si se le ha dado la clase cuando se clickeó para desplegar su submnenu). y a continuación darle la clase "mactive" a quien ahora ha desplegado su menú para mantener dicha dinámica.

Sin-nombre

Y para mantener la dinámica del cambio de color del icono de rojo a verde y viceversa según este o no desplegado el submenu, le agregamos el código para cambiar la clase del icono al que se requiere al no estar desplegado (no usamos un if para detectar su estado, puesto que se supone que si realiza ese proceso es porque ya esta desplegado, entonces solo ponemos el código que haga que la clase del icono cambie a como deber estar cuando el submenu no esta desplegado)


Sin-nombre2

Espero haberme hecho entender lo mejor posible, sin embargo recuerda que puedes ver el código en acción en el codepen en el link que te comparto a continuación, un saludo. http://codepen.io/EdwingGit/pen/WReQKN
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar