2013-07-29 57 views
0

我有一個MainMenu觀點:如何通過JavaScript在Html.ActionLink中添加Css類?

<div class="submenu"> 
    <ul> 
     @foreach (var p in Model) 
     { 
      <li> 
       <div class="manu_bg"> 
        @Html.ActionLink(p.Name, "ListProductByGroupID", "Product", new { GroupID = p.GroupCategoryID, GroupName = p.Name }, null) 
       </div> 
       @{Html.RenderAction("ListCateByGroupID", "Category", new { GroupID = p.GroupCategoryID }); 
       } 
      </li> 
     } 
    </ul> 
</div> 

和子菜單中MAINVIEW查看:

@foreach (var i in Model) 
    { 
     <li> 
       @Html.ActionLink(i.Name, "ListProductByCateID", "Product", new { CateID = i.CategoryID, CateName = i.Name }, new { id="link"}) 
     </li>  
    } 

和一些JavaScript添加CSS類活動鏈接:

window.onload = ActiveLink; 
function ActiveLink() { 
    var link = document.getElementById("link"); 
     link.onclick = showActive; 
} 

function showActive() { 
    var selectedlink = this.text; 
    var link = document.getElementById("link"); 
     if (link.text == selectedlink) { 
      link.className = " active"; 
     } 
     else { link.className = ""; } 


} 

我javascript不工作?

回答

0

添加ID到鏈接,這樣你可以找到它:

@Html.ActionLink(i.Name, "ListProductByCateID", "Product", new { CateID = i.CategoryID, CateName = i.Name }, new { id = "ListByCatLink" })</div> 

然後通過ID選擇它,並添加類...

使用純JavaScript:

var link = document.getElementById("ListByCatLink"); 
link.className = link.className + " active"; 

或jQuery如果你使用的是:

$("#ListByCatLink").addClass("active"); 
+0

'function ActiveLi nk(){ var alllinks = document.getElementById(「alinks」); (var i = 0; i Luffy

+0

爲什麼要迭代getElementById?根據定義,只有一個鏈接將擁有該ID,因此只有一個鏈接,因此您不需要迭代...如果您有多個鏈接需要應用此鏈接,請使用類或數據屬性標記他們,然後通過它找到他們。 – anaximander

+0

是的,我知道。我想從主菜單視圖爲我的子菜單添加活動類。 – Luffy

相關問題