2014-04-26 161 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想要發生的範圍內。 –