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

AdminLTE 3搭配Bootstrap4使用AJAX加载侧边栏菜单后展开折叠失效问题

问题根因

AdminLTE 3 的侧边栏展开折叠功能由内置的 Treeview 插件提供,插件只会在页面首次初始化时扫描当前DOM中带data-widget="treeview"属性的元素并绑定交互事件。你通过AJAX动态插入的菜单属于后续新增的DOM,不会被插件自动识别绑定事件,因此功能失效。静态写入的菜单能正常运行,就是因为静态DOM在页面初始化阶段就已经被插件扫描完成了事件绑定。

解决方案

在AJAX请求完成、菜单DOM插入页面后,手动触发 Treeview 插件的初始化即可。

修改后的JS代码如下:

$(document).ready(function(){
  var url = "";
    $.ajax({
    url: url,
  }).done(function(resp){
    // 拉取数据构造菜单DOM
    var ret = '<nav class="mt-2"><ul class="nav nav-pills nav-sidebar flex-column" data-widget="treeview" role="menu" data-accordion="true"><li class="nav-item"><a href="#" class="nav-link"><i class="nav-icon fas fas fa-user"></i><p>Admin<i class="right fas fa-angle-left"></i></p></a><ul class="nav nav-treeview"><li class="nav-item"><a href="#add-order.php" class="nav-link"><i class="far fa-circle nav-icon"></i><p>Rahim</p></a></li></ul><ul class="nav nav-treeview"><li class="nav-item"><a href="#" class="nav-link"><i class="far fa-circle nav-icon"></i><p>Test</p></a></li></ul></li></ul></nav>';
    $('.sidebar').html(ret);
    // 手动初始化Treeview插件
    $('[data-widget="treeview"]').Treeview('init');
  });
});
  • 注意:请确保AdminLTE的核心JS文件已经在当前页面提前加载,否则调用Treeview方法会报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 10:06:04