2013-05-23 2 views
0

Мне нужно переключить класс «bg» на открывшийся элемент меню. Он отлично работает, если они активированы и дезактивированы по одному за раз. Но когда один открывается, когда другой уже активирован, класс не добавляется/удаляется должным образом. Приветствия.Переключить класс на несколько элементов

http://jsfiddle.net/6a3eZ/31/

jQuery(document).ready(function(){     
    jQuery('.menu ul').hide(); 
    jQuery('.menu li.sub').click(function() { 
     jQuery(this).find('a:first').toggleClass('bg'); 
     jQuery(this).find('ul:first').toggle(0) 
       .end().siblings('li').find('ul').hide(0); 
    }); 
}); 
+1

Я не понимаю, что ты значит с "все неаккуратно" – Guerra

+0

К сожалению, не технический термин вероятно :) Я имею в виду, что в этом случае класс не добавляется/удаляется должным образом. – Ray

ответ

3

Вот рабочая версия: http://jsfiddle.net/6a3eZ/39/

Он использует этот код:

jQuery('.menu li.sub').click(function() { 
    var target = jQuery(this).children('a'); 

    if(target.hasClass('bg')){ 
     target.removeClass('bg'); 
    }else{ 
     jQuery('.menu-item > a').removeClass('bg'); 
     target.addClass('bg'); 
    } 

    jQuery(this).find('ul:first') 
       .toggle(0) 
       .end() 
       .siblings('li') 
       .find('ul') 
       .hide(); 
}); 
+0

Блестяще, спасибо. – Ray

Смежные вопросы