Я использую MVC.net, с трудом пробираюсь через боковую панель начальной загрузки, но остаюсь активным после щелчка и продолжаю обновлять страницу все время, пока я нажимаю.
Однако я стараюсь использовать приведенный ниже пример, он все еще не может быть активным после щелчка.
У меня есть несколько ответов по ссылке. Нажмите option1 здесь
и нажмите option2 здесь
Ниже мой код:
CurrentControllerActiveClassName:
public string CurrentControllerActiveClassName(string targetController)
{
var controller = ViewContext.RouteData.Values["controller"];
return controller.Equals(targetController) ? "active" : string.Empty;
}
HTML-макет:
<ul class="sub-menu" style="display: block;">
<li class="dropdown @CurrentControllerActiveClassName("Option")">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">@Manager.Resource.Value("ABC000") </a>
<ul class="sub-menu">
<li>@Html.ActionLink(Manager.Resource.Value("ABC001"), "Import", "Others Country")</li>
<li>@Html.ActionLink(Manager.Resource.Value("ABC002"), "Apply", "Accept")</li>
<li>@Html.ActionLink(Manager.Resource.Value("ABC003"), "Terminate", "Stop Purchasing")</li>
</ul>
</li>
</ul>
Jquery:
$('li:has(ul)', '#sidebar-content ul').each(function() {
if ($(this).hasClass('current') || $(this).hasClass('open-default')) {
$('>a', this).append("<i class='arrow " + arrow_class_open + "'></i>");
} else {
$('>a', this).append("<i class='arrow " + arrow_class_closed + "'></i>");
}
});
if ($('#sidebar').hasClass('sidebar-fixed')) {
$('#sidebar-content').append('<div class="fill-nav-space"></div>');
}
$('#sidebar-content ul > li > a').on('click', function (e) {
var navItem = $(this); //add to try
if (navItem.find("a").attr("href") == location.pathname) { //add to try
navItem.addClass("active"); //add to try
}
if ($(this).next().hasClass('sub-menu') == false) {
return;
}
Результат должен оставаться активным, пока боковая панель нажата.