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

AdminLTE 3.0点击子菜单时如何折叠nav-treeview菜单?

实现方案

你当前用的是AdminLTE框架的侧边导航树组件,默认逻辑仅支持点击父级菜单触发折叠,且点击页面非侧边栏区域会自动收起菜单,按以下步骤修改即可满足需求:

1. 引入JavaScript逻辑(依赖AdminLTE默认自带的jQuery)

将以下代码放在页面</body>标签前,且确保在AdminLTE的app.js引入之后加载:

$(function () {
  // 阻止点击侧边栏区域触发全局菜单关闭事件,实现点击页面其他区域不自动关闭菜单
  $('.main-sidebar').on('click', function (e) {
    e.stopPropagation()
  })

  // 绑定子菜单点击事件,触发对应父级菜单折叠
  $('.nav-treeview .nav-link').on('click', function () {
    // 找到当前子菜单对应的父级触发元素
    const parentToggle = $(this).closest('.nav-treeview').prev('.nav-link')
    // 触发父级的折叠切换逻辑
    parentToggle.trigger('click')
  })
})

2. 可选配置补充

如果你使用的是AdminLTE 3.x及以上版本,也可以在侧边栏初始化时添加配置关闭外部点击关闭功能,替代上面的事件阻止逻辑:

$('.sidebar').Sidebar({
  closeOnClickOutside: false
})

注意事项

  • 你的原有PHP代码中通过$page判断添加show类的逻辑已经可以实现页面跳转后保持对应菜单展开状态,无需修改
  • 如果不需要点击子菜单跳转仅需要折叠,可在子菜单点击事件中添加e.preventDefault()阻止默认跳转行为

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 08:45:05