使用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菜单并访问相关页面时。当前菜单项未突出显示(选中)。如何解决这个问题?
答案 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刀片函数进行操作相比可能要复杂得多。
希望这会有所帮助!