Aieron
@Aieron

Табы внутри табов как зафиксировать дочерние табы в активном положении?

Доброго дня. У меня что-то не соединяется. На сайте нужно реализовать табы внутри табов. Использую вот этот скрипт
$(document).ready(function () {
        $('.accordion-tabs').children('li').first().children('a').addClass('is-active')
              .next().addClass('is-open').show();
        $('.accordion-tabs').on('click', 'li > a', function(event) {
            if (!$(this).hasClass('is-active')) {
                event.preventDefault();
                $('.accordion-tabs .is-open').removeClass('is-open').hide();
                $(this).next().toggleClass('is-open').toggle();
                $('.accordion-tabs').find('.is-active').removeClass('is-active');
                $(this).addClass('is-active');
            } else {
                event.preventDefault();
            }
        });
    });


для дочерних табов продублировала его но назначила другой класс. С активностью проблем нет, все работает переключается. НО, оно переключается почему то по очереди, а не независимо. и если перейти по одному из родительских табов, то дочерние теряют активность. а мне надо чтобы на табе А отображались активная а1, переключил на B - активна дочерняя В1, вернулся на А активная А и А1. Если просто обновить страницу, то А и а1 активны, проблемы начинаются если перейти на В и вернуться на А. Надеюсь понятно объяснила.

Вас не затруднит подсказать что дописать надо к скрипту чтобы все работало и нужен ли второй такой же скрипт с другими классами? Заранее благодарю.

Поиском, к сожалению, найти адекватное решение и реализовать не получилось, думаю что надо допилить это.
  • Вопрос задан
  • 507 просмотров
Пригласить эксперта
Ответы на вопрос 1
daemonhk
@daemonhk
ПсиХоПат
В целом как-то так:

$(".tabs").each(function(){
	var tabs = $(this);
	tabs.find(".tab").each(function(){
		var post=$(this);
		var i=0;
		post.find(".question").off("click").on("click",function(){
			if(i===0){
				post.addClass("opened");
				i=1;
			}else{
				post.removeClass("opened");
				i=0;
			}
			return false;
		});
	});
});

$(".tabs") - родительский контейнер
$(".tab") - сам таб

Вместо ахинеи с переменной i можно использовать toggleClass(), я просто по привычке использую, дабы избежать проблем с неправильным переключением. Каждый аккордеон должен быть независимым (что родительский, что дочерние).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы