• 左侧菜单选中状态


    三种方案:

    第一:使用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");
    }
    });

  • 相关阅读:
    windows中dos命令指南
    HDU 2084 数塔 (dp)
    HDU 1176 免费馅饼 (dp)
    HDU 1004 Let the Balloon Rise (map)
    变态杀人狂 (数学)
    HDU 2717 Catch That Cow (深搜)
    HDU 1234 开门人和关门人 (模拟)
    HDU 1070 Milk (模拟)
    HDU 1175 连连看 (深搜+剪枝)
    HDU 1159 Common Subsequence (dp)
  • 原文地址:https://www.cnblogs.com/yangjing1314/p/8304996.html
Copyright © 2020-2023  润新知