2013-09-11 3 views
1

Я нахожусь в процессе изменений отзывчивой вкладки на аккордеон, пожалуйста, см jsfiddleОтзывчивых вкладки к проблеме аккордеона

Когда текущая вкладка «активная» щелчок скрывает, которую я понимаю, это то, что она предназначена для в коде, однако я бы хотел, чтобы этого не произошло и не скрывает. Вот текущий JavaScript:

$('#nav').children('li').first().children('a').addClass('active') 
     .next().addClass('is-open').show(); 

$('#nav').on('click', 'li > a', function() { 

     if (!$(this).hasClass('active')) { 

     $('#nav .is-open').removeClass('is-open').hide(); 
     $(this).next().toggleClass('is-open').toggle(); 

     $('#nav').find('.active').removeClass('active'); 
     $(this).addClass('active'); 
     } else { 
     $('#nav .is-open').removeClass('is-open').hide(); 
     $(this).removeClass('active'); 
     } 
}); 

Это в основном только применяя классы в зависимости от того, что нажата и то, что в настоящее время активен или нет. Думаю, мне нужно изменить логику этого?

+0

Аккордеоны обычно используют один и тот же принцип - сокрытие активного содержимого. – Boaz

ответ

1

Если я правильно понял, что вы хотите прекратить скрывать активный div при повторном нажатии. Просто удалите еще часть ...

$('#nav').children('li').first().children('a').addClass('active') 
     .next().addClass('is-open').show(); 

$('#nav').on('click', 'li > a', function() { 

     if (!$(this).hasClass('active')) { 

     $('#nav .is-open').removeClass('is-open').hide(); 
     $(this).next().toggleClass('is-open').toggle(); 

     $('#nav').find('.active').removeClass('active'); 
     $(this).addClass('active'); 
     } 
}); 

Проверить это Fiddle

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