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
.
我使用 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
.