Menú Javascript se queda abierto
Buenas! No tengo ni idea de Javascript, pero aproveché un menú y funciona perfectamente excepto que hay que darle otra vez al boton "burger" para que se cierre y es bastante molesto. Las opciones que abre el menú mueven al lector por la misma página (NO abren una página nueva).
¿Cómo lo hago para que al darle a una opción: mueva la página y cierre el menú?
Muchas gracias!
var lanzador = "#enlace-menu";
var desplegable = "#menu";
var despliegaClase = "menu-desplegado";
function nav() {
var lanz = document.querySelector(lanzador);
lanz.addEventListener("click", despliegaMenu, false);
}
function despliegaMenu(e) {
e.preventDefault();
var despl = document.querySelector(desplegable);
despl.classList.toggle(despliegaClase);
}
document.querySelector("html").classList.add("js");
nav();
phpninja
Puedes pegar el html de los enlaces de dentro del menu desplegable?
Hay que añadir despl.classList.toggle(despliegaClase); cuando se hace click en cualquiera de ellos.
proweb_cat
Buenas @phpninja !
<ul class="contbotoinf navegacion" id="menu">
<li><a href="#bloc1" class="estbotoinf botoinf1">Opcion A</a></li>
<li><a href="#bloc2" class="estbotoinf botoinf2">Opcion B</a></li>
<li><a href="#bloc3" class="estbotoinf botoinf3">Opcion C</a></li>
<li><a href="#bloc4" class="estbotoinf botoinf4">Opcion D</a></li>
<li><a href="#bloc5" class="estbotoinf botoinf4">Opcion E</a></li>
<li><a href="loremipsum.pdf" target="_blank" class="estbotoinf botoinf4 botocv">Descargar PDF</a></li>
</ul>
Dónde añado despl.classList.toggle(despliegaClase); ?
Mil gracias!
proweb_cat
@phpninja lo hice! Funciona a medias: me esconde el menú (bien), pero no se ejecuta el enlace (me desactiva el <a>)... :(
phpninja
Donde puedo verlo? lo tienes online?
vivaforosdelweb
No responde al click porque estás cancelando la acción del evento "click" con e.preventDefault();
Elimina ese e.preventDefault(); y verás que sí funciona.