 
			
				26.02.2018, 02:00
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 10.02.2014 
					
					
					
						Сообщений: 32
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
			
			 
				Помогите с localStorage
			 
			
		
		
		
		Есть скрипт: 
$('.fn_switch').click(function(e){
        e.preventDefault();
        $(this).next().slideToggle(300);
        if ($(this).hasClass('active')) {
            $(this).removeClass('active');
        }
        else {
            $(this).addClass('active');
        }
	});
Погуглив попробывал этот код:
 
$('.fn_switch').click(function(e){
        e.preventDefault();
        $(this).next().slideToggle(300);
        if ($(this).hasClass('active')) {
            $(this).removeClass('active');
			window.localStorage.hasActiveClass = 'active';
        }
        else {
            $(this).addClass('active');
			window.localStorage.hasActiveClass = '';
        }
			var hasClass = window.localStorage.hasActiveClass || '';
		if (JSON.parse(hasClass)) {
			$('.fn_switch').addClass("active");
		}
	});
Разметка в html
 
<div class="h2 filter_name fn_switch" data-vkladka="1">Вес <i class="angle_icon"></i></div>
			
                <div class="filter_group">
                    
                    <div class="filter_item">
                                               ****
                    
                </div>
                            
                <div class="h2 filter_name fn_switch active" data-vkladka="2">Страна производитель
				<i class="angle_icon"></i>
				</div>
			
                <div class="filter_group" style="display: none;">
                    
                    <div class="filter_item">
                                           *******
                        </div>
                    
                </div>
И при обноввлении страницы вкладки которым присвоен был класс active не запомнился(
 
помогите пожалуйста(  
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось wisma, 26.02.2018 в 02:45.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				26.02.2018, 03:11
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 01.12.2016 
					
					
					
						Сообщений: 3,650
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
	<style>
		.active{
			background-color: red;
		}
	</style>
</head>
<body>
	<div class="fn_switch">1</div><div></div>
	<div class="fn_switch">2</div><div></div>
	<div class="fn_switch">3</div><div></div>
	<div class="fn_switch">4</div><div></div>
	<div class="fn_switch">5</div><div></div>
	<div class="fn_switch">6</div><div></div>
	<div class="fn_switch">7</div><div></div>
	<script>
		$(function(){
			$('.fn_switch').click(function(e){
				e.preventDefault();
				$(this).next().slideToggle(300);
				if ($(this).hasClass('active')) {
					$(this).removeClass('active');
				}
				else {
					$(this).addClass('active');
				}
				var arr = $.map($('.fn_switch'), function(el, i){
					if($(el).hasClass('active')) return i;
				});
				localStorage.setItem('ind', JSON.stringify(arr));
			});
			var arr = JSON.parse(localStorage.getItem('ind'));
			if(arr){
				$('.fn_switch').filter(function(i){
					return arr.includes(i);
				}).addClass('active').next().show();
			}	
		});
	</script>
</body>
</html>
как вариант индексы запомнить  
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось j0hnik, 26.02.2018 в 04:03.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				26.02.2018, 03:47
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 10.02.2014 
					
					
					
						Сообщений: 32
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от j0hnik
			 
		
	 | 
 
	
		
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
	<style>
		.active{
			background-color: red;
		}
	</style>
</head>
<body>
	<div class="fn_switch">1</div><div></div>
	<div class="fn_switch">2</div><div></div>
	<div class="fn_switch">3</div><div></div>
	<div class="fn_switch">4</div><div></div>
	<div class="fn_switch">5</div><div></div>
	<div class="fn_switch">6</div><div></div>
	<div class="fn_switch">7</div><div></div>
	<script>
		$(function(){
			$('.fn_switch').click(function(e){
				e.preventDefault();
				$(this).next().slideToggle(300);
				if ($(this).hasClass('active')) {
					$(this).removeClass('active');
				}
				else {
					$(this).addClass('active');
				}
				var arr = $.map($('.fn_switch'), function(el, i){
					if($(el).hasClass('active')) return i;
				});
				localStorage.setItem('ind', JSON.stringify(arr));
			});
			var arr = JSON.parse(localStorage.getItem('ind'));
			if(arr){
				$('.fn_switch').filter(function(i){
					return arr.includes(i);
				}).addClass('active');
			}	
		});
	</script>
</body>
</html>
 
 
как вариант индексы запомнить
	 | 
 
	
 
 Оно то работает, но у меня не хочет    
исходной код вообще сайта можно глянуть на xpro.com.ua, тестирую до полной работы на локалке(
 
Я даже менял названия класса fn_switch на другой, но толку не дало(  
Там-же можно и увидеть что при добавлении класса active следующему диву ставится 
 
style="display:block;"
 
А вот если обновить страничку, то выходит что класс Актив он добавляет, но следующий блок без display:block; (  
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось wisma, 26.02.2018 в 03:52.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				26.02.2018, 04:08
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 01.12.2016 
					
					
					
						Сообщений: 3,650
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 добавил next().show() 
 
пост обновил 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				26.02.2018, 04:11
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 01.12.2016 
					
					
					
						Сообщений: 3,650
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Я то думал у вас совсем не работает ничего, а тут мелочь такая, соседний блок показать 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				26.02.2018, 04:37
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 10.02.2014 
					
					
					
						Сообщений: 32
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от j0hnik
			 
		
	 | 
 
	| 
		Я то думал у вас совсем не работает ничего, а тут мелочь такая, соседний блок показать
	 | 
 
	
 
 
  Все отлично и супер, но есть небольшое НО, возможно ли это все привязать допустим к 
  
<div class="h2 filter_name fn_switch" data-switch="тут уникальный айди">
 
data-switch? т.к. генерировать уникальное числовое значение мы (точнее движок) там может.... А если через индексы то выходит в других категориях товарах, с другими фильтрамы автоматом active привязывает к другим елементам, и выходит не удобно  
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось wisma, 26.02.2018 в 04:40.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				26.02.2018, 04:39
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 01.12.2016 
					
					
					
						Сообщений: 3,650
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 wisma, 
 если это нужно на одной странице, лучше проверять ее адрес, и если тот загружать из localStorage 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				26.02.2018, 04:44
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 10.02.2014 
					
					
					
						Сообщений: 32
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от j0hnik
			 
		
	 | 
 
	
		wisma, 
 если это нужно на одной странице, лучше проверять ее адрес, и если тот загружать из localStorage
	 | 
 
	
 
 Это используется на 120 страницах допустим, и на каждой странице свои значения, но суть я понял, а теперь последний вопрос, как же это реализировать?
 
Или при использовании проверки через data и множеству значений мы получим очень большой файл хранилища?  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				26.02.2018, 04:51
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 01.12.2016 
					
					
					
						Сообщений: 3,650
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
	<style>
		.active{
			background-color: red;
		}
	</style>
</head>
<body>
	<div class="fn_switch">1</div><div></div>
	<div class="fn_switch">2</div><div></div>
	<div class="fn_switch">3</div><div></div>
	<div class="fn_switch">4</div><div></div>
	<div class="fn_switch">5</div><div></div>
	<div class="fn_switch">6</div><div></div>
	<div class="fn_switch">7</div><div></div>
	<script>
		$(function(){
			var adr = document.location.pathname; // станица
			
			$('.fn_switch').click(function(e){
				e.preventDefault();
				$(this).next().slideToggle(300);
				if ($(this).hasClass('active')) {
					$(this).removeClass('active');
				}
				else {
					$(this).addClass('active');
				}
				var arr = $.map($('.fn_switch'), function(el, i){
					if($(el).hasClass('active')) return i;
				});
				localStorage.setItem(adr, JSON.stringify(arr));
			});
			var arr = JSON.parse(localStorage.getItem(adr));
			if(arr){
				$('.fn_switch').filter(function(i){
					return arr.includes(i);
				}).addClass('active').next().show();
			}	
		});
	</script>
</body>
</html>
должно сработать  
		
	
		
		
		
		
		
		
	
		
			
			
	
			
			
			
			
			
				 
			
			
			
			
			
			
				
			
			
			
		 
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				26.02.2018, 04:55
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 10.02.2014 
					
					
					
						Сообщений: 32
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от j0hnik
			 
		
	 | 
 
	
		 
должно сработать
	 | 
 
	
 
   Спасибо огромное!) Все отлично работает)  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 
 
 
 
	 | 
 
 
 |