Member 11859517 Ответов: 1

Активное навигационное меню не работает.?


Привет,

Я создал меню с помощью элемента ul li, но при щелчке по какому пункту меню этот пункт должен быть красного цвета.
он работает без тега "а". но с тегом на странице редиректа его цвет не отображается .

как это сделать с тегом? Пожалуйста, помогите мне.

Что я уже пробовал:

<ul class="nav">
     <li class="LogoStyle">
         <a href=@Url.Action("Index", "Home")>
            <p>Analog Dashboard</p>
         </a>
     </li>
	<li>
         <a href=@Url.Action("Index", "Home")>
            <p>Digital Dashboard</p>
         </a>
     </li>
     <li>
         <a href=@Url.Action("Index", "Home")>
            <p>Report</p>
         </a>
     </li>
     <li>
         <a href=@Url.Action("Index", "Home")>
            <p>Signal</p>
         </a>
     </li>
</ul>

$(document).ready(function () {
        var selector = '.nav li';
        $(selector).on('click', function () {
            $(selector).removeClass('LogoStyle');
            $(this).addClass('LogoStyle');
        });
    });

.LogoStyle {
    color: red;
    font-weight: 500;
}

F-ES Sitecore

Ваш код меняет цвет, но затем браузер переносит вас на новую страницу, так что html обновляется с новой...ваш обновленный html-код с изменением класса был отброшен.

Вместо того чтобы менять класс при нажатии на ссылку, вы должны обновить ссылку при загрузке страницы. Вам понадобится какой-то способ узнать, какая ссылка должна быть активна для данного сценария.

1 Ответов

Рейтинг:
1

ZurdoDev

Ф-Эс прав в своих комментариях. Ваш тег a вызывает загрузку новой страницы, поэтому html-код полностью новый. Я полагаю, у вас на каждой странице один и тот же ul? Надеюсь, он находится в пользовательском элементе управления, но вам нужно будет добавить немного JS на каждую страницу, чтобы отметить соответствующий пункт меню как активный.


Member 11859517

на самом деле я использую mvc, меню находится на странице общего макета.
которые доступны для всех остальных видов.

Member 11859517

Надеюсь, он находится в пользовательском элементе управления, но вам нужно будет добавить немного JS на каждую страницу, чтобы отметить соответствующий пункт меню как активный.

у вас есть какие-то идеи, какие JS я должен добавить на каждой странице?

ZurdoDev

Тот, который определяет, что такое url-адрес, и находит соответствующий пункт меню.

Member 11859517

Спасибо Ряндев,
у вас есть какой-нибудь пример или ссылка, так что я не могу понять это очень ясно.

ZurdoDev

Нет. Просто погуглите, Как получить название страницы из JS. Тогда вы будете иметь, чтобы соответствовать, что с селектор jQuery. Это будет нетрудно.