Umbraco7 导航:将 class 添加到父 UL

Umbraco7 Navigation: add class to parent UL

我使用 Umbraco7 制作了一个基于 Umbracos Sitemap 的 PartialView。 我已经设法将 "current" class 添加到当前的 <li>,但我也想将父 UL 作为目标。

快速概览:

<ul>
   <li>
     <ul> <-This guy needs a Current/Parent Class
       <li class="current">
          Here you are
       </li>
     </ul>
</li>

局部视图:

    @inherits Umbraco.Web.Macros.PartialViewMacroPage

@{ var selection = CurrentPage.Site(); }

    @Traverse(selection)


@helper Traverse(dynamic node)
{
var maxLevelForSitemap = 3;

var selection = node.Children.Where("Visible").Where("Level <= " + maxLevelForSitemap);

if (selection.Any())
{
    <ul>
        @foreach (var item in selection)
        {
           string cssClass = @item.Id != CurrentPage.Id ? "" : "current";

            <li class="@cssClass">
                <a href="@item.Url">@item.Name</a>

                @Traverse(item)
            </li>
        }
    </ul>
}
}

您可以为此使用一个小的 jquery 脚本,每次加载页面或发生回发时都会执行该脚本:

$(document).ready(function() {
    $('li.current').closest('ul').addClass('active');
});

这将获取当前 li 并搜索最接近的 ul ( parent ) 并添加 class active.