2012-11-20 69 views
2

我現在有一個帶有選項卡的索引頁,它們沒有鏈接到任何地方,但我試圖設置活動類,當你點擊一個選項卡。html選項卡removeClass&addClass在jquery不起作用

這裏是標籤:

<ul class="nav nav-tabs"> 
      @foreach(var division in Model) 
      { 
       <li class="span2""><a href="#">@division.Description</a></li> 
      } 
      <li class="active span2"><a href="#">All</a></li> 
      <li class="span2"><a href="#">Summary</a></li> 
     </ul> 

而jQuery的:

<script type="text/javascript"> 

$(document).ready(function() { 
    $("#tabs li").click(function() { 
     $("#tabs li").removeClass('active'); 
     $(this).addClass("active"); 
     $(".tab_content").hide(); 
     $(selected_tab).fadeIn(); 
     var selected_tab = $(this).find("a").attr("href"); 
    }); 
}); 

我也試着設置上指向功能SetActiveTab()選項卡onclick事件,只是試圖刪除活動但它也不起作用:

function SetActiveTab() { 
    $("#tabs li").removeClass("active"); 
} 

我在這裏錯過了什麼?

+0

你有你'foreach'內的錯誤,它應該是'<李班= 「span2」>',用單引號'''' – keaukraine

+0

只是一個錯字,在我的代碼中沒問題。發表這篇文章時必須滑過我的手指 –

回答

1

您正在嘗試通過編號#tabs引用li的父元素。可能是你的代碼片段不完整,你確實有#tabs元素爲li,但如果不是,你可以訪問li ,.nav-tabs.nav.nav-tabs。而且,這樣你就可以訪問你頁面上的所有標籤頁,而不僅僅是一個具有特定標識符的標籤頁。

例子:

$(document).ready(function() { 
    $(".nav.nav-tabs li").click(function() { 
     $("#tabs li").removeClass('active'); 
     $(this).addClass("active"); 
     $(".tab_content").hide(); 
     $(selected_tab).fadeIn(); 
     var selected_tab = $(this).find("a").attr("href"); 
    }); 
}); 

或者,您可以指定的li父元素的ID:

<ul class="nav nav-tabs" id="tabs"> 
-1

您的所有代碼都引用了#tabs,但您的「ul」沒有「tabs」的標識。

+0

這是更多評論(儘管有效且正確)。以提供某種解決方案,如keaukraine – Ian

+0

lol thx就是這樣..我看了十多遍......爲了發帖 –

+0

沒問題!發生在每個人=) – AlbertVo