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

JavaScript修改样式实现菜单切换可打开但无法关闭如何解决

菜单切换功能故障排查与修复

核心问题原因

你代码中对状态变量toogleNavStatus的修改使用了相等比较运算符===,而非赋值运算符=,导致状态值从未被真正更新:第一次点击后toogleNavStatus一直停留在初始值false,所以永远只会执行显示菜单的逻辑,无法触发隐藏逻辑。

修复后的完整JS代码

let toogleNavStatus = false;

let toogleNav = function(){
  let getSidebar = document.querySelector(".nav-links");

  if (toogleNavStatus === false) {
    getSidebar.style.visibility = "visible";
    // 用赋值运算符=更新状态
    toogleNavStatus = true;
  } else if (toogleNavStatus === true) {
    getSidebar.style.visibility = "hidden";
    // 用赋值运算符=更新状态
    toogleNavStatus = false;
  }
}

可选优化方案

可以简化冗余的判断逻辑,同时把DOM查询提前,避免每次点击都重复查询DOM节点,性能更好:

let toogleNavStatus = false;
// 提前查询侧边栏DOM,仅执行一次
const getSidebar = document.querySelector(".nav-links");

function toogleNav() {
  // 直接翻转状态,不用多分支判断
  toogleNavStatus = !toogleNavStatus;
  getSidebar.style.visibility = toogleNavStatus ? "visible" : "hidden";
}

另外建议把onclick="toogleNav()"属性从<i>标签移到外层的<button>标签上,避免点击按钮边缘时没有命中i标签,导致点击失效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 08:39:05