jquery добавить / удалить класс из .parent () - PullRequest
2 голосов
/ 18 января 2011

я знаю, что это невероятно легко, но я пишу и переписываю эту функцию в течение часа безуспешно:

При нажатии я хочу добавить "активный" к <li> по нажатой ссылке иудалить "active" из всех остальных <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>

jQuery:

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

Это добавление классовпросто отлично, но я не могу удалить его.

Я также попытался разделить его на отдельные функции без удачи.

У меня есть .stop (). animate ()там, потому что у меня есть .animate () в состоянии наведения ссылок.

спасибо!

edit:

это 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);
   });

Я не уверен, почему .stop (). Animate () не так.Если у меня нет .animate (), активный класс не будет прикреплен, если у меня есть, активный класс делает.

Я все еще не могу удалить класс, хотя: - /

Ответы [ 2 ]

9 голосов
/ 18 января 2011

Попробуйте это:

$(this).parent().siblings().removeClass('active');
4 голосов
/ 18 января 2011

Попробуйте что-нибудь еще проще:

 $('li.active').removeClass('active');
...