У меня есть тег <ul>
, как показано ниже. При нажатии на ссылку привязки он должен отображать div с элементами списка ul внизу. О функции мыши якорный тег, мне нужно, чтобы получить полную высоту DIV (на самом деле высота ул с пунктами Li), подменюjquery получить высоту подменю
<ul>
<li>
<a></a>
<div>
<ul>
<li></li>
<li></li>
<li></li>
</ul>
</div>
</li>
</ul>
HTML-код, как показано ниже:
<ul class="menu level-1 plain" id="header-menu">
@{
var i = 1; //Used for submenu ID
}
@foreach (var menuItem in Model.Header.TopLevelNavigation)
{
if (i < 6)
{
<li @Html.Raw(i > Model.MenuMidPoint ? "class=\"sub-menu-nudge-left\"" : "")>
@if (menuItem.ContentLink.HasChildPages())
{
<a href="#[email protected]" class="menu-link js-ui-header-all-menu-drill-down" aria-haspopup="true">
<span class="icon icon-chevron-left @Model.GetBoxIcon(i)"></span>
<span>@menuItem.Name</span>
</a>
<div id="[email protected]" class="sub-menu" aria-label="submenu" aria-hidden="true">
@Html.DisplayEnumerableIContent("<ul class=\"level-2 plain\">{0}</ul>", "<li>{0}</li>", "menu-link", menuItem.ContentLink.GetChildPages(true, true))
</div>
}
</li>
}
i++;
}
</ul>
Я пробовал функцию jquery, как показано ниже: Я пробовал, как показано ниже, но я не могу получить высоту подменю. Он никогда не попадает в петлю foreach вообще. Может кто-нибудь, пожалуйста, помогите
$(".menu-link").click(function() {
var $subnavdev = $(this).parent().sublings('sub-menu').siblings('level-2 plain')
var totalHeight = 0;
$subnavdev.find('li').each(function() {
totalHeight += $(this).outerHeight(true);
});
alert(totalHeight);
});
Существует опечатка:. 'Sublings()' - Является ли это в вашем коде , или артефакт для копирования/вставки? – ne1410s
Также вы можете обратиться к имени класса. Используйте префикс '.': например. .siblings ('. sub-menu') ... ' – ne1410s