Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.01.2017, 16:13
Аватар для Nezumi.May
Аспирант
Отправить личное сообщение для Nezumi.May Посмотреть профиль Найти все сообщения от Nezumi.May
 
Регистрация: 10.01.2017
Сообщений: 36

Запоминалка значения для выбранного элемента
Доброго времени суток! Прошу помочь направить мысли в нужное русло.

Имеется список серий:
<div class="block">
<a onclick="vidLoc('2713543',this,'3')">1</a>
<a onclick="vidLoc('2711882',this,'3')">2</a>
<a onclick="vidLoc('2716610',this,'3')">3</a>
</div>


Cкрипт, который при нажатии на ссылку добавит ей id и class.
$(function(){
 $('.block a').click(function(){
 $('a.eps').removeAttr('id');
 $('.block a').removeClass('eps');
 $(this).addClass('eps');
 $(this).attr('id','eps');
 });
});


Кнопка:
<button onclick="onclickVhod()">Сохранить значение</button>


И скрипт для этой кнопки, который по идее должен добавить класс для выбранной серии и сохранить его:
var parapam = document.getElementById('eps');
function onclickVhod() {
parapam.className = (parapam.className == 'raz') ? '' : 'raz';
localStorage.setItem('hide', parapam.className);
}

if(localStorage.getItem('hide') == 'raz') {
document.getElementById('eps').className = 'raz';
}


У выбранной серии после нажатия на кнопку меняется класс, всё работает, но после перезагрузки класс у выбранной ссылки слетает. Как мне запомнить класс?
Ответить с цитированием
  #2 (permalink)  
Старый 10.01.2017, 16:21
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от Nezumi.May
после перезагрузки класс у выбранной ссылки слетает.
откуда новая страница должна узнать что на старой какому то элементу вы присвоили id?
Ответить с цитированием
  #3 (permalink)  
Старый 10.01.2017, 16:43
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,215

Сообщение от Nezumi.May
Как мне запомнить класс?
Если запоминать на клиенте (компьютере), то есть:
- куки
- локальное хранилище
Ответить с цитированием
  #4 (permalink)  
Старый 10.01.2017, 16:46
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

ksa,
Ответить с цитированием
  #5 (permalink)  
Старый 10.01.2017, 16:47
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Nezumi.May,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
    .eps{
      color: #FF0000;
       background-color: #FFFF00;
    }
   .block a{
     font-size: 48px;
     cursor: pointer;
   }

  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

  <script>
$(function() {
    var a = $(".block a"),
        btn = $(".btn"),
        indx = localStorage.getItem("indx");
    a.on("click", function() {
        a.not($(this).addClass("eps")).removeClass("eps");
        indx = a.index(this);
        localStorage.removeItem("indx")
    });
    indx !== null && a.eq(indx).click();
    btn.on("click", function() {
        indx !== null && localStorage.setItem("indx", indx)
    })
});
  </script>
</head>

<body>
<div class="block">
<a onclick="vidLoc('2713543',this,'3')">1</a>
<a onclick="vidLoc('2711882',this,'3')">2</a>
<a onclick="vidLoc('2716610',this,'3')">3</a>
</div>
<button  class="btn">Сохранить значение</button>

</body>
</html>
Ответить с цитированием
  #6 (permalink)  
Старый 10.01.2017, 20:42
Аватар для Nezumi.May
Аспирант
Отправить личное сообщение для Nezumi.May Посмотреть профиль Найти все сообщения от Nezumi.May
 
Регистрация: 10.01.2017
Сообщений: 36

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

Ваш вариант работает, спасибо! Но после второго захода на страницу или повторной перезагрузки сохранённые данные пропадают. Вроде так быть не должно
Ответить с цитированием
  #7 (permalink)  
Старый 10.01.2017, 21:47
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от Nezumi.May
Вроде так быть не должно
должно!!! иначе кнопка Сохранить значение ненужна, сохранение идёт только по кнопке, не нажали == не сохранили.
без кнопочный вариант
$(function() {
    var a = $(".block a"),
        btn = $(".btn"),
        indx = localStorage.getItem("indx");
    a.on("click", function() {
        a.not($(this).addClass("eps")).removeClass("eps");
        indx = a.index(this);
        localStorage.setItem("indx", indx)
    });
    indx !== null && a.eq(indx).click();
});


оба варианта используют местоположение(индекс) нажатого элемента
Ответить с цитированием
  #8 (permalink)  
Старый 11.01.2017, 12:46
Аватар для Nezumi.May
Аспирант
Отправить личное сообщение для Nezumi.May Посмотреть профиль Найти все сообщения от Nezumi.May
 
Регистрация: 10.01.2017
Сообщений: 36

Сообщение от рони Посмотреть сообщение
должно!!! иначе кнопка Сохранить значение ненужна, сохранение идёт только по кнопке, не нажали == не сохранили.
Странно. Я предполагала, что при нажатии на кнопку переменная сохраняется в ключе, а уже ключ проверяется при обновлении страницы, следовательно нажатие кнопки повторно не обязательно.

Спасибо! Доделала без кнопочный вариант и получилось то что нужно, даже немного лучше, чем предполагалось.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка выбранного типа элемента Alex_dark74 Общие вопросы Javascript 3 20.06.2015 18:53
Имитация элемента label не для элементов формы Jeremen Events/DOM/Window 2 09.01.2015 21:25
Кастомный метод для элемента выборки. Casufi jQuery 7 26.09.2013 18:43
эмуляция события click для элемента select Polo Events/DOM/Window 4 16.12.2009 13:29
Применение функции для каждого элемента sergeygerasimov jQuery 2 26.11.2008 11:15