我的侧边栏菜单在点击子项时关闭,需要保持打开

My sidebar menu getting closed when clicking on sub items, need to keep open

提问人:Angel 提问时间:11/10/2023 更新时间:11/10/2023 访问量:41

问:

当我单击子项时,我需要保持侧边栏处于打开状态,现在它已关闭。例如,当我单击子项管理比赛时,该活动菜单将关闭。如果有人知道如何解决,请提出任何解决方案,请帮助我

<!-- Sidebar Menu -->
            <ul class="sidebar-menu">
                <li class="header">SECTION NAVIGATIONS</li>
              <li class="treeview">
                    <a href="#"><i class="fa fa-film"></i><span>Events </span> <i class="fa fa-angle-left pull-right"></i></a>
                    <ul class="treeview-menu"> 
                      
                   
               <li ><a  href="competitions.php" ><i class="fa fa-plus"></i>Manage Competitions</a></li>
                
              </ul>
                    </li>
                    
                      <li class="treeview">
                    <a href="#"><i class="fa fa-film"></i><span>Data </span> <i class="fa fa-angle-left pull-right"></i></a>
                    <ul class="treeview-menu"> 
                        <li><a  href="users.php"><i class="fa fa-plus"></i>Manage Users</a></li>
                        <li><a  href="cart.php"><i class="fa fa-plus"></i>Manage Cart</a></li>
                        <li><a  href="clients.php"><i class="fa fa-plus"></i>Manage Clients</a></li>
                        
                    </ul>
              
  </li>
                 <li class="treeview">
                    <a href="#"><i class="fa fa-film"></i><span>Settings </span> <i class="fa fa-angle-left pull-right"></i></a>
                    <ul class="treeview-menu"> 
                        <li><a  href="prices.php"><i class="fa fa-plus"></i>Manage Prices</a></li>`enter code here`
                        
                    </ul>
                </li>
                  
            </ul><!-- /.sidebar-menu -->
javascript jquery css 引导-4

评论

0赞 CBroe 11/10/2023
可能与这是某种“树视图”这一事实有关,这些通常以这种方式实现。但是据我所知,我无法说出您在这里实际使用的功能是什么,这不是原生的 BS4 组件吗?
0赞 freedomn-m 11/10/2023
仅给定提供的代码,当您单击页面时,重定向到 - 即您打开一个新页面。您的菜单没有“关闭”,新页面在呈现时已经关闭。尝试更新,使侧边菜单在加载时已打开。Manage Competitionscompetitions.phpcompetitions.php

答:

0赞 jakub podhaisky 11/10/2023 #1

我想你需要通过JS处理关闭

document.addEventListener('DOMContentLoaded', function () {
var treeviewMenus = document.querySelectorAll('.treeview');
treeviewMenus.forEach(function (menu) {
    menu.addEventListener('click', function (event) {
        // Check if the clicked element is a subitem
        if (event.target.closest('.treeview-menu')) {
            // Prevent automatic closing
            event.stopPropagation();
        } else {
            // Toggle the menu's open state
            this.classList.toggle('menu-open');
        }
    });
});

}); 这应该可以做到,我认为您需要更改它以适合您的项目:)不确定您是否正在使用 Bootstrap 核心功能

评论

0赞 Angel 11/10/2023
我已经尝试过了,但仍然关闭了