我目前正尝试在网站主页上创建使用切片进行导航的自定义导航。
我使用MVCSiteMapProvider for MVC5在主页上显示实时图块以及标准引导程序导航栏,当用户仅加载主页导航时,隐藏在父图标下嵌套的任何值。
以下CSHTML是我迄今为止设法创建的:
<section id="content">
<div class="main-content">
@{
var nodes = MvcSiteMapProvider.SiteMaps.Current.CurrentNode;
}
@foreach (var node in nodes.RootNode.ChildNodes)
{
<div class="col-md-4 live-tile" id="@node.Key">
<div class="@node.Description">
<h3>@node.Title</h3>
</div>
</div>
foreach (var childNode in node.ChildNodes)
{
<div class="col-md-4 hidden @childNode.ParentNode.Key">
<div class="@childNode.Description">
<h3>@childNode.Title</h3>
</div>
</div>
}
}
</div>
</section>
<script type="text/javascript">
$('.live-tile').on('click', function () {
var ids = $('.live-tile').map(function () {
return this.id;
}).get();
$.each(ids, function (index, value) {
});
});
</script>
我需要一些关于如何在点击其中一个父图块(div)时显示多个div的指导。
我只想显示子元素,目前我尝试使用父div的id作为其子元素的一个类,当单击父元素时,其他顶级div应隐藏和子元素元素和父元素应该是可见的。
非常感谢任何建议。
答案 0 :(得分:1)
试试这个:
<div class="col-md-4 live-tile" id="@node.Key">
<div class="@node.Description">
<h3>@node.Title</h3>
</div>
</div>
<div class="col-md-4 hidden @childNode.ParentNode.Key">
<div class="@childNode.Description">
<h3>@childNode.Title</h3>
</div>
</div>
<div class="col-md-4 hidden @childNode.ParentNode.Key">
<div class="@childNode.Description">
<h3>@childNode.Title</h3>
</div>
</div>
<div class="col-md-4 hidden @childNode.ParentNode.Key">
<div class="@childNode.Description">
<h3>@childNode.Title</h3>
</div>
</div>
<div class="col-md-4 live-tile" id="@node.Key">
<div class="@node.Description">
<h3>@node.Title</h3>
</div>
</div>
<div class="col-md-4 hidden @childNode.ParentNode.Key">
<div class="@childNode.Description">
<h3>@childNode.Title</h3>
</div>
</div>
<div class="col-md-4 hidden @childNode.ParentNode.Key">
<div class="@childNode.Description">
<h3>@childNode.Title</h3>
</div>
</div>
<div class="col-md-4 hidden @childNode.ParentNode.Key">
<div class="@childNode.Description">
<h3>@childNode.Title</h3>
</div>
</div>
</div>
$('.live-tile').on('click', function () {
$('.main-content>div').not('.live-tile').addClass('hidden');// hide all divs on click
$('.main-content>div').removeClass('clicked');
$(this).addClass('clicked');
$('.clicked').nextUntil( '.live-tile', "div.hidden" ).removeClass('hidden');// now show the next hidden ones
});