El menú móvil no se cierra debido a este error:
TypeError no capturado: no se pueden leer las propiedades de nulo (leyendo 'addEventListener')
Aquí está el JS:
//MOBILE MENU TOGGLE// var menu_element = document.getElementById('menu-mobile-open'); var menu_exists = !!menu_element; if(menu_exists){ menu_element.addEventListener('click', function(){ document.body.classList.add('menu-mobile-active'); }); document.getElementById('menu-mobile-close').addEventListener('click', function(){ document.body.classList.remove('menu-mobile-active'); }); }
Puede simplificar su código y, en lugar de agregar y eliminar clases en eventos de clic, puede alternar esa clase. Un ejemplo de ejemplo para alternar el botón del menú:
let menu = document.getElementById("menu-button"); menu.addEventListener("click", function(){ menu.classList.toggle("active"); })
En cada clic, se alternará la clase activa. Si está presente, se eliminará. Si no está presente, se agregará.
En este caso, todo lo que debe asegurarse es que la identificación del botón de menú coincida con la identificación que está obteniendo en JavaScript. No necesita verificar su existencia/visibilidad en el sitio web, no me parece necesario, ya que el detector de eventos se aplicará solo cuando exista de todos modos.