jquery从.parent()添加/删除类

Tho*_*mas 2 jquery addclass removeclass

我知道这非常容易,但我一直在编写并重写此功能一小时但没有成功:

点击后我想<li>在点击的链接中添加"活动",并从<li>导航栏中的所有其他链接中删除"活动" .

HTML:

   <nav>
     <ul>
       <li><a href="http://0327ea8.netsolhost.com/#home" class="home">Home</a></li>
       <li><a href="http://0327ea8.netsolhost.com/blog/" class="blog">Blog</a></li>
       <li><a href="http://0327ea8.netsolhost.com/#catalog" class="catalog">Catalog</a></li>
       <li><a href="http://0327ea8.netsolhost.com/#authors" class="authors">Authors</a></li>
       <li><a href="http://0327ea8.netsolhost.com/#store" class="store">Store</a></li>
     </ul>
   </nav>
Run Code Online (Sandbox Code Playgroud)

jQuery的:

  // NAVBAR ADD ACTIVE
   $("nav ul li a").click(function(){
     $("nav ul li").removeClass('active');
     $(this).stop().animate();
     $(this).parent().addClass('active');
   });
Run Code Online (Sandbox Code Playgroud)

这是添加类很好但我无法删除它.

我也尝试将它分成单独的功能而没有运气.

我在那里有.stop().animate(),因为我在链接的悬停状态下有一个.animate().

谢谢!

编辑:

这是悬停的jQuery以及我有.stop().animate()的原因

   $("nav ul li a, aside ul li.categories a, div.posts div.foot a").hover(function(){
     $(this).animate({'backgroundColor' : '#edf5e9'}, 200);
   },function() {
     $(this).animate({'backgroundColor' : '#ccd4c8'}, 600);
   });
Run Code Online (Sandbox Code Playgroud)

我不确定为什么.stop().animate()是错误的.如果我没有.animate(),那么活动类就不会坚持,如果我这样做,活动类就会坚持.

我仍然无法将课程删除: - /

tre*_*ace 10

试试这个:

$(this).parent().siblings().removeClass('active');
Run Code Online (Sandbox Code Playgroud)

  • 如果您将其修改为 `$(this).parent().addClass('active').siblings().removeClass('active');`,它将涵盖添加和删除部分。只是离开奇怪的`stop().animate()` 部分...... (2认同)

mea*_*gar 5

尝试更简单的方法:

 $('li.active').removeClass('active');
Run Code Online (Sandbox Code Playgroud)