2012-11-20 45 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