侧边栏下拉菜单优化求助:实现点击整栏触发展开
实现点击整个按钮区域触发展开侧边栏下拉菜单
当前代码的问题在于使用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
相关产品推荐
相关产品推荐

