Сохранить открытую вкладку в Bootstrap Tabs

В данной статье представлены два метода, как сохранить открытую вкладку в Bootstrap Tabs, поле перезагрузки страницы браузера.

На примере версии Bootstrap 4.3, вёрстка будет следующая:

<ul class="nav nav-tabs">
	<li class="nav-item">
		<a class="nav-link active" id="home-tab" data-toggle="tab" href="#tab-1">Home</a>
	</li>
	<li class="nav-item">
		<a class="nav-link" id="profile-tab" data-toggle="tab" href="#tab-2">Profile</a>
	</li>
	<li class="nav-item">
		<a class="nav-link" id="contact-tab" data-toggle="tab" href="#tab-3">Contact</a>
	</li>
</ul>

<div class="tab-content">
	<div class="tab-pane fade show active" id="tab-1">
		<h3>Вкладка #1</h3>
		...
	</div>
	<div class="tab-pane fade" id="tab-2">
		<h3>Вкладка #2</h3>
		...
	</div>
	<div class="tab-pane fade" id="tab-3">
  		<h3>Вкладка #3</h3>
		...
	</div>
</div>
HTML

Скрипты привязываются к элементам по классу .nav-tabs и активной вкладкой .active, также задействуется JS-метод tab('show').

$(function($){
	var storage = document.cookie.match(/nav-tabs=(.+?);/);
	
	
	if (storage && storage[1] !== "#") {
		$('.nav-tabs a[href="' + storage[1] + '"]').tab('show');
	}

	$('ul.nav li').on('click', function() {
		var id = $(this).find('a').attr('href');
		document.cookie = 'nav-tabs=' + id;
	});
});
JS

Пример:

Веб-хранилище localStorage позволяет хранить пары ключ=значение в браузере. Данные, которые в него записаны, сохраняются после обновления страницы и даже после перезапуска браузера.

$(function($){
	var storage = localStorage.getItem('nav-tabs');
	if (storage && storage !== "#") {
		$('.nav-tabs a[href="' + storage + '"]').tab('show');
	}

	$('ul.nav li').on('click', function() {
		var id = $(this).find('a').attr('href');
		localStorage.setItem('nav-tabs', id);
	});
});
JS

Пример:

23.12.2020, обновлено 09.06.2021
3969

Комментарии

, чтобы добавить комментарий.

Другие публикации

Как сохранить порядок jQuery UI Sortable?
Сохранить сортировку после перетаскивания элементов UI Sortable можно несколькими способами:
5950
+5
Табы/вкладки на jQuery
Сделать табы на jQuery очень просто, сделаем HTML разметку и добавим к нему JS код...
21788
+7
Фиксированное горизонтальное меню с активными пунктами
Пример горизонтального меню для лэндингов, в котором реализовано...
9330
+5
Как изменить Favicon сайта из JavaScript
Для замены Favicon во вкладке браузера достаточно у элемента link rel="icon" в атрибуте href указать путь до нового...
5856
+3
Пример парсинга html-страницы на phpQuery
phpQuery – это удобный HTML парсер взявший за основу селекторы, фильтры и методы jQuery, которые позволяют...
39491
+21
Список MIME типов
Ниже приведён список MIME-заголовков и расширений файлов.
11690
+4