在子页面上将父项标记为活动

Marking parent item as active when on child page

本文关键字:记为 活动      更新时间:2023-09-26

我有一个由父级LI元素组成的导航栏。每个包含子页面的节都嵌入另一个无序列表。当查看子元素的页面时,子元素LI获得"活动"类,但父元素没有。我如何分配活动类的父项目以及与jQuery或CSS?

使用closest(),它选择最接近匹配选择器的父级。因此,如果您的子元素有几个元素深,它仍然会找到正确的父元素,而不是.parent(),它只捕获直接的父元素或.parents(),它捕获所有的父元素,直到您的选择器。

$('.child').closest('.parent').addClass('active');

它仍然是测试版,所以我不知道你是否已经使用jQuery UI菜单(或者如果你还没有使用任何JavaScript)?但是,对于jQuery UI菜单,像这样:

function activate_parent(e, u){
    $("#ui-active-menuitem").parents("li").filter(function(i){
        return !($(this).closest("ul").hasClass(".ui-menu-flyout"));
    }).find("a").addClass(".ui-state-hover");
    return;
}
$("#menu").menu({
    'focus': activate_parent
});