You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

汉堡菜单点击菜单项跳转后仅首个可关闭问题求助

你现在的代码里用document.querySelector(".nav_item")只能选中页面中第一个带有nav_item类的元素,所以只有第一个菜单项绑定了关闭事件,其余菜单项没有绑定点击事件,自然点击无反应。

修复后的JavaScript代码

const hamburger = document.querySelector(".hamburger");
const navMenu = document.querySelector(".nav_options");
const navMargin = document.querySelector(".sec_about");
// 改为获取所有带nav_item类的元素
const navItems = document.querySelectorAll(".nav_item")

hamburger.addEventListener("click", mobileMenu);

function mobileMenu() {
  hamburger.classList.toggle("active");
  navMenu.classList.toggle("active");
  navMargin.classList.toggle("active");
}

// 遍历所有菜单项,逐个绑定关闭事件
navItems.forEach(item => {
  item.addEventListener("click", closeham);
})

function closeham() {
  // 改用remove而非toggle,避免误触发菜单打开,同时同步移除navMargin的激活状态
  navMenu.classList.remove("active");
  hamburger.classList.remove("active");
  navMargin.classList.remove("active");
}

补充说明

你的HTML中li和内部的a标签都添加了nav_item类,上述代码会给所有匹配元素都绑定关闭事件,不影响正常使用。如果希望只给可点击的链接绑定事件,将选择器改为document.querySelectorAll(".nav_item a")即可。


内容的提问来源于stack exchange,提问作者MIDAROU

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 00:27:04