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

如何实现点击含sub-menu的li时调用最近子菜单的slideToggle()?

多层嵌套菜单展开/收起功能修复

问题出在你用错了DOM查找方法:

  • closest()是向上查找当前元素的父级/祖先元素,但你的.sub-menu是点击的<li>(.menu-item-has-children)的子元素,所以这个方法根本找不到目标。

正确的做法是用向下查找的方法:

  • 如果.sub-menu是当前<li>的直接子元素(和菜单结构匹配),用children()最精准,只找直接子节点:
$(".menu-item-has-children").click(function(event) {
  event.preventDefault();
  $(this).children(".sub-menu").slideToggle();
});
  • 如果.sub-menu不是直接子元素(中间有其他标签嵌套),就用find()配合first()确保只操作当前li下最近的那个子菜单:
$(".menu-item-has-children").click(function(event) {
  event.preventDefault();
  $(this).find(".sub-menu").first().slideToggle();
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 03:16:12