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

侧边栏下拉菜单优化求助:实现点击整栏触发展开

实现点击整个按钮区域触发展开侧边栏下拉菜单

当前代码的问题在于使用e.target(点击的具体子元素)定位父容器,当点击按钮区域内的不同元素时,e.target的层级会变化,导致无法准确选中需要切换类的.nav-li容器(比如点击按钮空白区域时,e.target是.icon-link本身,此时parentElement.parentElement会选中错误的上层元素)。

修改后的代码:

let navli = document.querySelectorAll("div.icon-link");
for (var i = 0; i < navli.length; i++) {
  navli[i].addEventListener("click", (e) => {
    // 使用currentTarget获取绑定事件的.icon-link元素,再取其父元素.nav-li
    let navliParent = e.currentTarget.parentElement;
    navliParent.classList.toggle("showMenu");
  });
}

代码说明:

  • e.currentTarget始终指向绑定事件的.icon-link元素,不受点击的具体子元素影响,确保每次都能准确找到对应的.nav-li父容器。
  • 直接切换.nav-li的showMenu类,实现下拉菜单的展开/收起,无论点击按钮区域内的箭头、文字还是空白部分都能触发。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 19:00:53