为什么没有在Laravel 5.6中突出显示当前选择的菜单?

时间:2018-10-25 16:52:22

标签: php jquery laravel

使用Laravel 5.6时,我有sidebar.blade.php刀片文件,该文件与其他刀片文件一起包含以显示侧面菜单栏,

 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <style>
     .nav-sidebar li.active{
      /*your css code here*/
     }
    </style>

    <div class="col-sm-3 col-md-2 sidebar" >
        <ul class="nav nav-sidebar">
            <li style="margin-left:20px;">
            </li>
            <li><a href="#">  {{ Auth::user()->name }}</a></li>
            <li><a href="#">Acxian<span class="sr-only">(current)</span></a></li>

            <li><a href="{{route('vehicles.myads')}}">My Ads</a></li>
            <li><a href="" class="">Members</a></li>
            <li><a href="">Invitation</a></li>
            <li><a href="">Help</a></li>
        </ul>

          <div class="dropdown">
      <button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">Project Reports
      <span class="caret"></span></button>
      <ul class="dropdown-menu">

      </ul>
    </div> 

    </div>

    <script>

       $('.nav-sidebar').on('click','li', function(){
        $(this).addClass('active').siblings().removeClass('active');
      });
    </script>

但是当我单击sedebar菜单并访问相关页面时。当前菜单项未突出显示(选中)。如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

如前所述,您的代码将在点击时添加一个类。但是单击时也会加载一个新页面,在该页面中不会启动onclick函数。

不过,您可以使用一些服务器端代码来完成工作:

<a href="..."><li class="{{ Request::is('vehicles') ? 'active' : '' }}">Vehicles</li></a>
<a href="..."><li class="{{ Request::is('/') ? 'active' : '' }}">Home</li></a>

如果您想通过js解决方案获得相同的结果,我想您需要获取URL-String并将其与某个结果进行比较,而这与使用laravel刀片函数进行操作相比可能要复杂得多。

希望这会有所帮助!