需求:AdminLTE菜单栏点击子菜单后,会刷新页面,然后菜单栏就折叠了。体验不好!优化为即使页面刷新了原菜单栏保持点击前状态
解决办法:
直接在菜单栏所在文件新增以下脚本代码即可
<script>
$('.sidebar-menu li:not(.treeview) > a').on('click', function(){
var $parent = $(this).parent().addClass('active');
$parent.siblings('.treeview.active').find('> a').trigger('click');
$parent.siblings().removeClass('active').find('li').removeClass('active');
});
$(window).on('load', function(){
$('.sidebar-menu a').each(function(){
var cur = window.location.href;
var url = this.href;
if(cur.match(url)){
$(this).parent().addClass('active')
.closest('.treeview-menu').addClass('.menu-open')
.closest('.treeview').addClass('active');
}
});
});
</script>
参考博文:admin LTE是怎么控制菜单在页面刷新之后展开的?
末尾吐槽:
1. 也不知道项目之前怎么改的。。。在2.3.8中文文档(https://3vshej.cn/AdminLTE/AdminLTE-2.3.11/pages/examples/invoice.html)中原本是有这个效果的。而且网上查了一大堆没几个解决的。。。