Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы » Как добавит sessionStorage к табам?

Как добавит sessionStorage к табам?


     07.10.2020    sessionStorage, табы    Общие вопросы, jQuery    762

вопрос
Доброго времени суток, подскажите пожалуйста знающие, как добавит sessionStorage к скрипту табов-вкладок? Нужно запоминать активную вкладку при перезагрузки страницы.

Сам скрипт табов:

Сама разметка:


Заранее спасибо за помощь.

Ответа пока нет


8 комментариев

akella
Юзер

akella - 8 октября 2020 05:54 -

$(function() {
        var tab = $('#tabs .tabs-items > div');
        tab.hide();
        var a = sessionStorage['activetab'];
        if (!a) {
            a = ':first'
        };
        tab.filter(a).show();

        // Клики по вкладкам.
        $('#tabs .tabs-nav a').click(function() {
            sessionStorage['activetab'] = this.hash;
            tab.hide();
            tab.filter(this.hash).show();
            $('#tabs .tabs-nav a').removeClass('active');
            $(this).addClass('active');
            $.getScript({
			url: "//povarenok.online/templates/povarenok/js/moreContent.js",
			cache: true
		});
            return false;
        }).filter(a).click();

        // Клики по якорным ссылкам.
        $('.tabs-target').click(function() {
            $('#tabs .tabs-nav a[href=' + $(this).data('id') + ']').click();
        });
    });

ushkom
Юзер

ushkom - 8 октября 2020 11:50 -

Большое спасибо, скрипт частично работает. При перезагрузки сохраняется открытый ранее таб, но сама кнопка открытого таба не активна, что нужно подправить чтоб к а присвоить класс class="active"?

akella
Юзер

akella - 8 октября 2020 14:20 -

попробуйте так
if (!a) {
            a = ':first'
        } else {
            $('a[href=' + a + ']').addClass('active')
        }

ushkom
Юзер

ushkom - 8 октября 2020 16:27 -

К сожалению так в обще не корректно работает.

akella
Юзер

akella - 8 октября 2020 20:05 -

if (!a) {a=':first';
        var el = document.querySelector('a[href="#tab-1"]');
        el.classList.add("active");}else {var el = document.querySelector('a[href="'+a+'"]'); 
el.classList.add("active");}


в предыдущем комментарии кавычки пропустил
if (!a) {
            a = ':first'
        } else {
            $('a[href="' + a + '"]').addClass('active')
        }

ushkom
Юзер

ushkom - 8 октября 2020 20:11 -

Да, все супер, работает как часики. Спасибо Вам большое

ushkom
Юзер

ushkom - 8 октября 2020 23:29 -

Хотя нет, наверное после перезагрузки браузера, скрипт не работает а консоль выдает
Uncaught TypeError: Cannot read property 'classList' of null

Получается не обнуляет сессию.

ushkom
Юзер

ushkom - 8 октября 2020 23:34 -

Да, так работает и после перезагрузки
if (!a) {
            a = ':first'
        } else {
            $('a[href="' + a + '"]').addClass('active')
        }

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

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

 12.06.2014 never3d222  Общие вопросы
наверх