Blog
Blog sobre programación y diseño en la web
Creando un menú vertical desplegable con jQuery (2)
Translate this page into EnglishTras una pregunta de Saúl sobre el artículo Creando un menú vertical desplegable con jQuery en la que me preguntaba cómo lograr que al abrir una opción del menú se cerrara cualquier otra que estuviera abierta (podéis ver la pregunta en la zona de comentarios del artículo anterior) he actualizado (bueno, básicamente cambiado) el código para que pueda hacerse lo que pide Saúl. Aunque lo he puesto en los comentarios respondiéndole me he animado a crear una nueva entrada por si a alguien le fuera de interés.
Lo que queremos conseguir es esto: Ejemplo de menú vertical desplegable con jQuery con efecto acordeón
Como veréis en el ejemplo, el código HTML completo del navegador es:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <ul class="navegador">
<li><a href="#" class="desplegable" title="Venta">Venta</a>
<ul class="subnavegador">
<li><a href="#" title="Viviendas">Viviendas</a></li>
<li><a href="#" title="Aparcamientos">Aparcamientos</a></li>
</ul>
</li>
<li><a class="desplegable" href="#" title="Alquiler">Alquiler</a>
<ul class="subnavegador">
<li><a href="#" title="Viviendas">Viviendas</a></li>
</ul>
</li>
<li><a href="#" title="Oficinas">Oficinas</a></li>
<li><a href="#" title="Ofertas">Ofertas</a></li>
<li><a href="#" title="Oficina de Ventas">Oficina de Ventas</a></li>
</ul> |
Y el código jQuery que lo hace posible:
1 2 3 4 5 6 7 8 9 10 11 | <script type="text/javascript"> $(document).ready(function(){ // Script del Navegador $("ul.subnavegador").not('.selected').hide(); $("a.desplegable").click(function(e){ var desplegable = $(this).parent().find("ul.subnavegador"); $('.desplegable').parent().find("ul.subnavegador").not(desplegable).slideUp('slow'); desplegable.slideToggle('slow'); e.preventDefault(); }) }); </script> |
Si tenéis alguna pregunta no dudéis en preguntar.
5 Comentarios a “Creando un menú vertical desplegable con jQuery (2)”:
Escribir un comentario
XHTML: Puedes usar estos códigos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">



Puse a funcionar en una web un menú desplegable armado con jquery. El problema es que ahora se han incorporado muchos contenidos nuevos y cada vez que agrego algo debo agregar botones al menú. Por ende actualizar los y de cada HTML. ¿Hay alguna forma de llamar un archivo externo al HTML, que contenga todo el desarrollo del menú? Así podría actualizar solo un archivo de menú cada vez que se necesita.
¡Gracias!
Hola Eugenia,
¿Sabes programar en PHP? Hacer lo que me dices en PHP es muy sencillo, simplemente con un include llamarías a la parte del menú.
que tal Juan!
Gracias por compartir conocimiento. Te cuento, estoy haciendo un menú acordeón con jquery bastante parecido al que indicas en este post, este lo estoy aplicando a una plantilla wordpress. El problema que me tiene urgido es que necesito, que al pinchar un link del submenu desplegado, este no desaparezca y que a la vez quede activo al abrirse la pagina (link) correspondiente.
Espero hacerme entender y que te animes a explicar esto, (si no es muy complejo y mucha mi patudez), he estado buscando la solución, pero…
desde ya, muchas gracias!
Hola, no entendí muy bien. Dónde debo pegar cada código? Estoy al tanto de tu respuesta.
Hola Juan,
Gracias por compartir tus conocimientos. Me funciona bien tu menu, pero le veo una pega. Es lo mismo que comenta Pablo. Estaria bien que mientras no cambiemos de submenu el mismo no desaparezca, que siga abierto hasta que abramos otro submenu.
En otro articulo ya pones como seria la logica pero como no se programar en jquery pues no lo puedo. Estaria bien que nos pudieras explicar o dar alguna pista. Si no es mucho pedir.
Gracias de todas formas!