2011-01-13 92 views
0

我有一个菜单,通过单击链接来切换。我希望链接在菜单可见时加下划线,并且在隐藏时没有装饰。我无法获得正确的功能:当您第一次按下触发按钮时会显示下划线,但在隐藏菜单后仍会显示下划线。jQuery切换下划线

感谢您的帮助!

HTML

<div id="trigger"> 
     <div id="menu">MENU<br/></div> 
     <div id="navdrop"> 
      <a class="a transition" id="item1" href="Pages/music.html" alt="MUSIC">MUSIC</a><br /> 
      <a class="a transition" id="item2" href="Pages/photos.html" alt="PHOTOS">PHOTOS</a><br /> 
      <a class="a transition" id="item3" href="Pages/biography.html" alt="BIOGRAPHY">BIOGRAPHY</a><br /> 
      <a class="a transition" id="item4" href="Pages/discography.html" alt="DISCOGRAPHY">DISCOGRAPHY</a><br /> 
      <a class="a transition" id="item5" href="Pages/contact.html" alt="CONTACT">CONTACT</a><br /> 
      <a class="a" id="item6" href="http://www.blog.fernandogaribay.com" alt="BLOG" target="_blank">BLOG</a><br /> 
     </div> 
    </div> 

的Javascript

$('#trigger').click(function(){ 
     $('#navdrop').slideToggle(400); 
     $('#menu').css("text-decoration", "underline"); 
}); 

回答

3
$('#trigger').click(function(){ 
    $('#navdrop').slideToggle(400, function(){ 
     $('#menu').toggleClass('underline'); 
    }); 
}); 

CSS

#menu.underline { 
    text-decoration: underline; 
} 

demo on the go

+0

这仍然将切换在幻灯片完成之前的课程 – jondavidjohn 2011-01-13 05:16:10

0

您需要使用.slideToggle()

$('#trigger').click(function(){ 
    $('#navdrop').slideToggle(400, function() { 
     $('#menu').toggleClass('underline'); 
    }); 

}); 

的回调部分这将触发CSS更改幻灯片有后完成。

我也建议你在你的CSS中设置一个.underline类来设置下划线。正如其他人一样,我也会给你这个css规则,非常基本。使用通用.underline还提高了可重用性,你可以在你的网站的任何地方使用它来设置下划线文本修饰

.underline { 
    text-decoration: underline; 
}