2016-09-13 5 views
1

У меня есть вкладка (bootstrap <ul>). Я хочу выделить цвет связанного элемента jquery.
вот мой HTMLИзменить цвет выбранной вкладки, jQuery

<ul class="nav navbar-nav"> 
        <li class="active"><a href="index.html">Home</a></li> 
        <li id="aboutus">@Html.ActionLink("About Us", "aboutus","home")</li> 
        <li id="service">@Html.ActionLink("Services", "Services", "home")</li> 
        <li id="portfolio">@Html.ActionLink("Portfolio", "portfolio", "home")</li> 
    </ul> 

мой вопрос, как я могу изменить цвет элемента, который выбирается пользователем?

+0

использовать css вместо – depperm

+0

Но как это сделать с помощью css? – santubangalore

+0

Вы используете MVC, чтобы вы могли просто сказать в своих файлах 'cshtml', которые вы просматриваете, так как вы можете просто редактировать это представление. Где @depperm сказал об использовании CSS, просто посмотрите на мой jsfiddle: https://jsfiddle.net/o5v6at31/. Если вы не знаете о css, вы можете захотеть перейти на w3schools и посмотреть. Это вам понадобится, если вы используете бутстрап – Canvas

ответ

1

Проблема в том, что каждый раз, когда вы переходите на другую страницу и обновляется навигационная панель, она всегда выбирает первый <li> как активный. Используя jQuery, вы можете получить URL-адрес текущей страницы и посмотреть, какая из ссылок имеет этот адрес как href и добавить к нему активный класс. Удалите активную ссылку из первого элемента в раскрывающемся списке и используйте jQuery для добавления активного класса.

Markup

<ul class="nav navbar-nav"> 
    <li><a href="index.html">Home</a></li> 
    <li id="aboutus">@Html.ActionLink("About Us", "aboutus","home")</li> 
    <li id="service">@Html.ActionLink("Services", "Services", "home")</li> 
    <li id="portfolio">@Html.ActionLink("Portfolio", "portfolio", "home")</li> 
</ul> 

JQuery

<script> 
    $(document).ready(function() { 
     var activeLink = location.pathname.substr(location.pathname.lastIndexOf('/'), location.pathname.length); 
     var parent = $('a[href$="' + activeLink + '"]').parent('li'); 
     if (parent.closest('ul').hasClass('dropdown-menu')) { 
      parent.parents('.dropdown').addClass('active'); 
     } 
     parent.parent('li').addClass('active'); 
    }); 
</script> 

Этот дополнительный <ul> чеки используются, если Navbar имеют выпадающие с большим количеством ссылок внутри него.

Смежные вопросы