I seem to be having a problem with my menu toggle code where when I click the element then click elsewhere to hide it and go back to click the menu icon to show it, it will sometimes take multiple clicks to show it.
function showNav() {
let navToggle = document.querySelector('#js-nav-toggle');
let navMenu = document.querySelector('.Nav__menu');
navToggle.addEventListener('click', () => {
navMenu.classList.add('visible');
});
hideOnClickOutside(navToggle);
// Handle outside clicks
function hideOnClickOutside(element) {
document.addEventListener('click', function (e) {
if(e.target.id != 'js-nav-toggle') {
element.nextElementSibling.classList.remove('visible');
}
});
}
document.removeEventListener('click', hideOnClickOutside);
}