获取左侧导航链接以保持打开和活动状态

Getting left nav link to stay open and active

本文关键字:活动状态 导航 链接 获取      更新时间:2023-09-26

目前我有一个左导航菜单可以工作:

$('.navContainer li div').click(function () {
var $t = $(this);
var $next = $t.next('.navtoggle');
$('.navtoggle').not($next).slideUp('active');
$next.slideToggle(400);
});

问题是,需要根据正在进行的页面突出显示最后一级别的链接,并使导航保持打开状态。上面的脚本,一旦点击,将加载相应的页面并关闭导航。我尝试使用饼干,但无法让它工作。我尝试使用文档就绪,它一直工作到页面重新加载并且它只是重置。所以我有点卡住了。我试过:

$(document).ready(function () {
$('.navContainer .navtoggle li a').click(function (e) {
    $(e.target).addClass('current');
    });
});

.navContainer .navtoggle li a,是用于保持其激活状态的最后一个链接。我正在添加类"当前",因为导航中使用了活动。这将更改链接颜色,仅此而已。我也尝试过a:target和a:active,但一切都不断重置。

我能够在这里找到答案 http://www.itworld.com/article/2832973/development/setting-an-active-menu-item-based-on-the-current-url-with-jquery.html 并更改一些事情来使其工作。想把大部分功劳归功于那个网页,但我能够以此为基础让它工作。最终代码为:

$(function () {
setNavigation(); });
function setNavigation() {
var path = window.location.pathname;
path = path.replace(/'/$/, "");
path = decodeURIComponent(path);
$(".navContainer .navtoggle li a").each(function () {
    var href = $(this).attr('href');
    if (path.substring(0, href.length) === href) {
        $(this).closest('li a').addClass('current');
        $(this).closest('.navtoggle').css('display', 'block');
    }
}); }