A small module from this site's mobile navigation — handling menu close on link click, the Escape key, and keyboard access for the burger button.
export function initMobileMenu() {
const $menuToggle = $("#menu-toggle");
const $burger = $(".burger");
$(".main-nav a").on("click", function () {
closeMobileMenu($menuToggle);
});
$(document).on("keydown", function (event) {
handleEscapeKey(event, $menuToggle);
});
$burger.on("keydown", function (event) {
if (event.key === " " || event.key === "Enter") {
event.preventDefault();
$burger.trigger("click");
}
});
}
function closeMobileMenu($menuToggle) {
$menuToggle.prop("checked", false);
}
function handleEscapeKey(event, $menuToggle) {
if (event.key === "Escape" && $menuToggle.prop("checked")) {
closeMobileMenu($menuToggle);
}
}