установить активный класс CSS для текущего меню

0

Я пытаюсь написать функцию для установки текущего активного меню, но в моем меню есть 2 поля

class= "current" и class= "current selectedLava"

мое меню:

<nav>
<ul class="sf-menu">
    <li><a href="Default.aspx">Home</a>
        <ul>
            <li><a href="About.aspx">Home Cinema</a></li>
        </ul>
    </li>
    <li><a href="Home_Movie.aspx">Movie</a>
        <ul>
            <li ><a href="List_Movie.aspx">List Movie</a></li>
            <li ><a href="abc.aspx">List</a></li>
    </li>

</ul><!-- end menu -->

я имею в виду, когда я нахожусь в Home_Movie.aspx, это будет

        <li class="current selectedLava"><a href="Home_Movie.aspx">Movie</a>
        <ul>
            <li><a href="List_Movie.aspx">List Movie</a></li>
            <li ><a href="abc.aspx">List</a></li>
    </li>

и когда я нахожусь в List_Movie.aspx, это будет

        <li class="current selectedLava"><a href="Home_Movie.aspx">Movie</a>
        <ul>
            <li class="current"><a href="List_Movie.aspx">List Movie</a></li>
            <li ><a href="abc.aspx">List</a></li>
    </li>

легко понять:

1: http://s30.postimg.org/cx4ks87y9/image.png

2: http://s30.postimg.org/p09wfsj0h/image.png

  • 0
    Можете ли вы попытаться воспроизвести вашу проблему на jsfiddle.net, чтобы нам было легче помочь?
  • 0
    Какова роль класса selectedLava?
Показать ещё 4 комментария
Теги:
asp.net-mvc
master-pages

1 ответ

0
Лучший ответ

Я думаю, вы замените свой метод highlightActiveMenuItem следующим образом:

highlightActiveMenuItem = function () {
    var url = window.location.pathname.substr(6);    
    $('nav li a[href="' + url + '"]').parent().addClass('current');
    if ($('nav li a[href="' + url + '"]').parent().parent().hasClass('sf-menu'))
    {
      $('nav li a[href="' + url + '"]').parent().addClass('selectedLava');
    }
    else
    {
      $('nav li a[href="' + url + '"]').parent().parent().parent().addClass('current selectedLava');  
    }
}

Или используйте специальный класс для элемента меню верхнего уровня, чтобы избежать тройного parent()

  • 0
    спасибо, если они посещают страницу ниже, как я могу установить для class = "current selectedLava"
  • 0
    @KevinHuynh, вы хотите добавить 2 класса? Используйте .addClass('current selectedLava')
Показать ещё 23 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню