Adminlte 3 с загрузкой-4 динамическое меню боковой панели, загруженное с боковой панели ajax, открыто не работает

#javascript #ajax #bootstrap-4 #adminlte

Вопрос:

Я хочу нарисовать данные динамического меню боковой панели из базы данных с помощью AJAX в панели администратора 3 с панелью начальной загрузки 4. Когда я динамически загружал данные меню боковой панели с помощью AJAX, боковая панель открывалась или сворачивалась, не работала.Мой URL-адрес JSFiddle приведен ниже. Когда статические данные нажимаются на класс». sidebar » без ajax, меню открывается/скрывается. Но использование меню вызова ajax открыть/скрыть не работает.

 $(document).ready(function(){  var url = "";  $.ajax({  url: url,  }).done(function(resp){  //retrive data  var ret = 'lt;nav class="mt-2"gt;lt;ul class="nav nav-pills nav-sidebar flex-column" data-widget="treeview" role="menu" data-accordion="true"gt;lt;li class="nav-item"gt;lt;a href="#" class="nav-link"gt;lt;i class="nav-icon fas fas fa-user"gt;lt;/igt;lt;pgt;Adminlt;i class="right fas fa-angle-left"gt;lt;/igt;lt;/pgt;lt;/agt;lt;ul class="nav nav-treeview"gt;lt;li class="nav-item"gt;lt;a href="#add-order.php" class="nav-link"gt;lt;i class="far fa-circle nav-icon"gt;lt;/igt;lt;pgt;Rahimlt;/pgt;lt;/agt;lt;/ligt;lt;/ulgt;lt;ul class="nav nav-treeview"gt;lt;li class="nav-item"gt;lt;a href="#" class="nav-link"gt;lt;i class="far fa-circle nav-icon"gt;lt;/igt;lt;pgt;Testlt;/pgt;lt;/agt;lt;/ligt;lt;/ulgt;lt;/ligt;lt;/ulgt;lt;/navgt;';  $('.sidebar').html(ret);  });   }); 
 lt;script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"gt;lt;/scriptgt; lt;body class="sidebar-mini sidebar-closed sidebar-collapse" style="height: auto;"gt;   lt;!-- Site wrapper --gt; lt;div class="wrapper"gt;  lt;!-- Navbar --gt;  lt;nav class="main-header navbar navbar-expand navbar-primary navbar-dark"gt;  lt;!-- Left navbar links --gt;    lt;ul class="navbar-nav"gt;  lt;li class="nav-item"gt;  lt;a class="nav-link" data-widget="pushmenu" href="#" role="button"gt;lt;i class="fas fa-bars"gt;lt;/igt;lt;/agt;  lt;/ligt;  lt;!--  lt;li class="nav-item d-none d-sm-inline-block"gt;  lt;a href="#" class="nav-link"gt;Homelt;/agt;  lt;/ligt;  lt;li class="nav-item d-none d-sm-inline-block"gt;  lt;a href="#" class="nav-link"gt;Contactlt;/agt;  lt;/ligt;  --gt;  lt;/ulgt;     lt;!-- Right navbar links --gt;  lt;ul class="navbar-nav ml-auto"gt;  lt;li class="nav-item dropdown user-menu"gt;  lt;a href="#" class="nav-link dropdown-toggle" data-toggle="dropdown"gt;  lt;img src="public/images/login_man.png" class="user-image img-circle elevation-2" alt="User Image"gt;  lt;span class="d-none d-md-inline"gt;adminlt;/spangt;  lt;/agt;  lt;ul class="dropdown-menu dropdown-menu-lg dropdown-menu-right"gt;        lt;!-- Menu Footer--gt;  lt;li class="user-footer"gt;  lt;!--lt;a href="#" class="btn btn-default btn-flat"gt;Profilelt;/agt;--gt;  lt;a href="logout.php" class="btn btn-danger btn-flat float-right"gt;Sign outlt;/agt;  lt;/ligt;  lt;/ulgt;  lt;/ligt;  lt;!--  lt;li class="nav-item"gt;  lt;a class="nav-link" data-widget="fullscreen" href="#" role="button"gt;  lt;i class="fas fa-expand-arrows-alt"gt;lt;/igt;  lt;/agt;  lt;/ligt;  lt;li class="nav-item"gt;  lt;a class="nav-link" data-widget="control-sidebar" data-slide="true" href="#" role="button"gt;  lt;i class="fas fa-th-large"gt;lt;/igt;  lt;/agt;  lt;/ligt;  --gt;  lt;/ulgt;  lt;/navgt;  lt;!-- /.navbar --gt;lt;aside class="main-sidebar main-sidebar-custom sidebar-dark-primary elevation-4"gt;  lt;a href="#" class="brand-link"gt;  lt;i class="brand-image fas fa-tachometer-alt" style="opacity: .8"gt;lt;/igt;  lt;span class="brand-text font-weight-light"gt;Dashboardlt;/spangt;  lt;/agt;  lt;div class="sidebar"gt;  lt;/divgt; lt;/asidegt; lt;div class="container-fluid"gt;  lt;div class="content-wrapper" style="min-height: 549px;"gt;   lt;/divgt;  lt;/divgt; lt;/divgt; lt;/bodygt; 

Ответ №1:

Просто поместите код после успешной функции, и он будет работать.

 $('[data-widget="treeview"]').Treeview('init');