博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
左侧菜单选中状态
阅读量:5301 次
发布时间:2019-06-14

本文共 2177 字,大约阅读时间需要 7 分钟。

三种方案:

第一:使用url传参,给rul加 ?index=x

eg:https://www.baidu.com?index=1

$.sidebarMenuActive = function() {
var index = 0;
var oList = $('.js_sidebarMenu');
var aA = $(".js_sidebarMenu .treeview-menu li a");
var url = window.location.href;

// 初始化页面

init();
// 先写一个功能函数,从链接地址中获取 index 的值
function getIndex(url, key) {

if (!url) { return; }

var arr = url.slice(url.indexOf('?') + 1).split('&');
return function() {
for(var item in arr) {
var otherArr = arr[item].split('=');
if (otherArr[0] == key) {
return otherArr[1];
};
}
}();
}

// 初始化函数,找到哪一个按钮是当前状态

function init() {
index = getIndex(url, 'index') ? getIndex(url, 'index') : 0;
aA[index].className = 'is-active';
}
}

$.sidebarMenuActive();

 

第二种方案

// 使用url匹配当前页面是否添加is-active
$.urlMenuActive = function() {
var url = location.href;
var arr=new Array();
var i = 0;
var aA = $(".js_sidebarMenu .treeview-menu li a");
var isChange = 0;

// 获取所有菜单栏url

function getUrlArr(){
$(".js_sidebarMenu>li").each(function(){
$(this).find(".submenu>li").each(function(){
var href = $(this).find("a").attr("href");
var lastStr = href.lastIndexOf('/');
var isNum = href.substr(lastStr+1, href.length);

if(!isNaN(isNum)){ // /后是数字

href = href.substr(0, lastStr); //截取
}
arr[i] = href;
i++;
});
});
}
getUrlArr();
i = null;

// 存值到 sessionStorage

for(var j=0; j<arr.length; j++){
if(url.indexOf(arr[j])!=-1){
sessionStorage.setItem("url", arr[j]);
sessionStorage.setItem("urlKey", j);
isChange = 1;
break;
} else{
isChange = 0;
}
}
j = null;

var active = sessionStorage.getItem("url");

var activeKey = sessionStorage.getItem("urlKey");

// 找到哪一个菜单是当前状态

if(isChange==1){
aA.removeClass("is-active");
aA[activeKey].className = 'is-active';
}

}

第三种方案:

使用localStorage

$(document).ready(function () {

$(".submenu a").click(function() {
localStorage.setItem("activeId", $(this).attr("id"));
});
var currentActive = localStorage.getItem("activeId");
if (currentActive) {
var $currentActive = $("#" + currentActive);
$currentActive.addClass("is-active");
$currentActive.parent().parent().attr("style", "display: block;");
$currentActive.parent().parent().parent().find(".inactive").addClass("active");
}
});

 

转载于:https://www.cnblogs.com/yangjing1314/p/8304996.html

你可能感兴趣的文章
[Code Festival 2017 qual A] C: Palindromic Matrix
查看>>
修改博客园css样式
查看>>
Python3 高阶函数
查看>>
初始面向对象
查看>>
docker一键安装
查看>>
leetcode Letter Combinations of a Phone Number
查看>>
Exercise 34: Accessing Elements Of Lists
查看>>
angular中的代码执行顺序和$scope.$digest();
查看>>
ALS算法 (面试准备)
查看>>
思达BI软件Style Intelligence实例教程—房地产分析
查看>>
Unity 3D 如何修改新建脚本中的 C# 默认创建的 Script 脚本格式
查看>>
Unity3D开发之NGUI点击事件穿透响应处理
查看>>
Unity 5.4 测试版本新特性---因吹丝停
查看>>
使用Scrapy爬虫框架简单爬取图片并保存本地(妹子图)
查看>>
7.5 文件操作
查看>>
DFS-hdu-2821-Pusher
查看>>
吴裕雄 Bootstrap 前端框架开发——Bootstrap 排版:地址(Address)
查看>>
吴裕雄--天生自然 JAVASCRIPT开发学习: 表单
查看>>
UITextField
查看>>
Spring事务管理的三种方式
查看>>