2016-09-13 129 views
1

我有一個標籤(引導<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添加活動類。

標記

<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>檢查使用。