2014-04-26 130 views
0

这是我的标记如果hasclass addclass其他removeclass不工作

<header id="header"> 
    <nav> 
     <ul class="menu"> 
      <li id="homeSecLink" class="active"><a href="#Home" class="homeLink">Home</a></li> 
      <li><a href="#Partners">Partners</a></li> 
      <li><a href="#About">About</a></li> 
      <li><a href="#Contact">Contact</a></li> 
     </ul> 
    </nav> 
</header> 

在页面加载我试图在头部添加borderGap类,如果homeSecLinkactive类别的除去borderGap

这里addClass工作,但removeClass不起作用

这就是我所做的:

$(document).ready(function() { 
    if ($('#homeSecLink').hasClass("active")) { 
     $('#header').addClass('borderGap'); 
    } else { 
     $('#header').removeClass('borderGap'); 
    } 
}); 
+5

定义'不working'? –

+3

看起来像这个工作正常吗?http://jsfiddle.net/FRaTH/1/和http://jsfiddle.net/FRaTH/2/ – Navin

+0

请指出你期望它做什么和它做什么。 “不工作”不是很清楚。 –

回答

1

removeClass工作,你需要删除active class

HTML

<header id="header"> 
    <nav> 
     <ul class="menu"> 
      <li id="homeSecLink" class="active"><a href="#Home" class="homeLink">Home</a></li> 
      <li><a href="#Partners">Partners</a></li> 
      <li><a href="#About">About</a></li> 
      <li><a href="#Contact">Contact</a></li> 
     </ul> 
    </nav> 
</header> 
<a id="toggle">Toggle</a> 

的JavaScript

$(document).ready(function() { 
    $('#toggle').click(function() { 
     if ($('#homeSecLink').hasClass("active")) { 
      $('#header').addClass('borderGap'); 
      $('#homeSecLink').removeClass('active'); 
     } else { 
      $('#header').removeClass('borderGap'); 
      $('#homeSecLink').addClass('active'); 
     } 
    }); 
}); 

Demo Link

+0

“active”类可能是由服务器端脚本添加的?这意味着这不在OP想要发生的范围内。 –