Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 26.02.2018, 13:28
Аспирант
Отправить личное сообщение для wisma Посмотреть профиль Найти все сообщения от wisma
 
Регистрация: 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(){

			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>


должно сработать
Все бы хорошо, но у меня движок генерирует дополнительные адресса страниц, и выходит что при выборе определенных с-в меняется адресс странички, а вот все таки как заставить работать по допустим data-name="value"?


<div class="fn_switch" data-name="12">1</div><div></div>
	<div class="fn_switch" data-name="17">2</div><div></div>
	<div class="fn_switch" data-name="32">3</div><div></div>
	<div class="fn_switch" data-name="15">4</div><div></div>
	<div class="fn_switch" data-name="99">5</div><div></div>
	<div class="fn_switch" data-name="120">6</div><div></div>
	<div class="fn_switch" data-name="112">7</div><div></div>

Последний раз редактировалось wisma, 26.02.2018 в 13:37.
Ответить с цитированием
  #12 (permalink)  
Старый 26.02.2018, 15:07
Аспирант
Отправить личное сообщение для wisma Посмотреть профиль Найти все сообщения от wisma
 
Регистрация: 10.02.2014
Сообщений: 32

Или допустим по
<div class="fn_switch" id="12">1</div><div></div>
2
    <div class="fn_switch" id="17">2</div><div></div>
3
    <div class="fn_switch" id="32">3</div><div></div>
4
    <div class="fn_switch" id="15">4</div><div></div>
5
    <div class="fn_switch" id="99">5</div><div></div>
6
    <div class="fn_switch" id="120">6</div><div></div>
7
    <div class="fn_switch" id="112">7</div><div></div>

я могу генерировать любое уникальное число....

Ну я про то что после class="fn_switch" записывать что-то и это запоминать и выводить...

Последний раз редактировалось wisma, 26.02.2018 в 15:40.
Ответить с цитированием
  #13 (permalink)  
Старый 26.02.2018, 19:08
Аспирант
Отправить личное сообщение для wisma Посмотреть профиль Найти все сообщения от wisma
 
Регистрация: 10.02.2014
Сообщений: 32

up
Ответить с цитированием
  #14 (permalink)  
Старый 26.02.2018, 19:38
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

решение как вы хотите конечно же есть, но для этого id или какой то иной тег должен быть уникальный на всем сайте, а не только на странице..

все тоже самое только надо будет запоминать все идентификаторы с классом active.
Ответить с цитированием
  #15 (permalink)  
Старый 26.02.2018, 19:42
Аспирант
Отправить личное сообщение для wisma Посмотреть профиль Найти все сообщения от wisma
 
Регистрация: 10.02.2014
Сообщений: 32

Сообщение от j0hnik Посмотреть сообщение
решение как вы хотите конечно же есть, но для этого id или какой то иной тег должен быть уникальный на всем сайте, а не только на странице..

все тоже самое только надо будет запоминать все идентификаторы с классом active.
А как это реализировать? Уникальный айди генерируется для всего сайта.

Я js вообще не понимаю
Ответить с цитированием
  #16 (permalink)  
Старый 26.02.2018, 19:44
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

id будет или data-name?
Ответить с цитированием
  #17 (permalink)  
Старый 26.02.2018, 19:45
Аспирант
Отправить личное сообщение для wisma Посмотреть профиль Найти все сообщения от wisma
 
Регистрация: 10.02.2014
Сообщений: 32

Сообщение от j0hnik Посмотреть сообщение
id будет или data-name?
лучше я думаю data-name
Ответить с цитированием
  #18 (permalink)  
Старый 26.02.2018, 19:48
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

localStorage запоминание кликнутых элементов
wisma,
<!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" data-name="12">1</div><div></div>
  <div class="fn_switch" data-name="17">2</div><div></div>
  <div class="fn_switch" data-name="32">3</div><div></div>
  <div class="fn_switch" data-name="15">4</div><div></div>
  <div class="fn_switch" data-name="99">5</div><div></div>
  <div class="fn_switch" data-name="120">6</div><div></div>
  <div class="fn_switch" data-name="112">7</div><div></div>


  <script>
$(function() {
  var obj = JSON.parse(localStorage.getItem("obj") || "{}");
  $(".fn_switch").each(function(indx, el) {
    var num = $(el).data("name");
    $(el).click(function(e) {
      e.preventDefault();
      $(el).toggleClass("active").next().slideToggle(300);
      obj[num] = $(el).hasClass("active");
      localStorage.setItem("obj", JSON.stringify(obj));
    });
    obj[num] && $(el).addClass("active").next().slideDown();
  });
});
  </script>
</body>
</html>

Последний раз редактировалось рони, 26.02.2018 в 19:51.
Ответить с цитированием
  #19 (permalink)  
Старый 26.02.2018, 19:53
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 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" data-name="11">1</div><div></div>
	<div class="fn_switch" data-name="12">2</div><div></div>
	<div class="fn_switch" data-name="13">3</div><div></div>
	<div class="fn_switch" data-name="14">4</div><div></div>
	<div class="fn_switch" data-name="15">5</div><div></div>
	<div class="fn_switch" data-name="16">6</div><div></div>
	<div class="fn_switch" data-name="17">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 $(el).attr('data-name');
				});

				localStorage.setItem('a', JSON.stringify(arr));
			});

				$('.fn_switch').filter(function(i){
					return 	JSON.parse(localStorage.getItem('a')).includes($(this).attr('data-name'));
				}).addClass('active').next().show();
		});

	</script>
</body>
</html>


	</script>
</body>
</html>

Последний раз редактировалось j0hnik, 26.02.2018 в 20:18.
Ответить с цитированием
  #20 (permalink)  
Старый 26.02.2018, 20:00
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

j0hnik,
не работает ... возможно мои браузеры устарели
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
localstorage service script ExXxTaSy Общие вопросы Javascript 12 27.01.2017 12:49
Можно ли использовать значение из localstorage в PHP smart-create Events/DOM/Window 12 07.11.2016 02:54
LocalStorage удаление данных neon_tmn Общие вопросы Javascript 8 21.10.2016 15:22
Обход элементов localStorage berserk10 Events/DOM/Window 8 11.08.2013 14:55
Не сохраняется localStorage после перезагрузки браузера Бобр Firefox/Mozilla 1 20.10.2011 20:31