Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.04.2015, 18:40
Кандидат Javascript-наук
Отправить личное сообщение для mitiya Посмотреть профиль Найти все сообщения от mitiya
 
Регистрация: 13.01.2011
Сообщений: 114

как сохранить ссылку на тэг по которому кликнул ?
Здравствуйте.

есть множество div без класса или id. при клике по одному из них можно поместить x = $(this) в переменную. И позже сделать $(x) и сделать что-то с тем дивом. Но мне надо сохранить х в localstorage.
х где-то внутри себя ссылается на самого себя, из-за этого его нельзя конвертнуть в JSON. Хотелось бы узнать как из $(this) достать ссылку на именно это див, что не хранить весь объект.
Ответить с цитированием
  #2 (permalink)  
Старый 16.04.2015, 19:09
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

mitiya,
храните индекс нажатого элемента
var divs = $('div');
var x = divs.index(this);
var elem = $('div').eq(x);

Последний раз редактировалось рони, 16.04.2015 в 19:12.
Ответить с цитированием
  #3 (permalink)  
Старый 16.04.2015, 20:05
Кандидат Javascript-наук
Отправить личное сообщение для mitiya Посмотреть профиль Найти все сообщения от mitiya
 
Регистрация: 13.01.2011
Сообщений: 114

а получить конкретный путь к элементу можно?
что бы использовать индекс надо получить еще и корневой элемент, при сложной структуре это трудно.
Ответить с цитированием
  #4 (permalink)  
Старый 16.04.2015, 20:09
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Сообщение от mitiya
что бы использовать индекс надо получить еще и корневой элемент
где в коде вы увидели корневой элемент?
Сообщение от mitiya
а получить конкретный путь к элементу можно?
а чем путь через индекс не нравится?
Ответить с цитированием
  #5 (permalink)  
Старый 16.04.2015, 20:18
Кандидат Javascript-наук
Отправить личное сообщение для mitiya Посмотреть профиль Найти все сообщения от mitiya
 
Регистрация: 13.01.2011
Сообщений: 114

если у меня див в диве то как я его найду?
Ответить с цитированием
  #6 (permalink)  
Старый 16.04.2015, 20:22
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

mitiya,
я показал как -- попробуйте это применить - сделайте макет с минимальным html - 10 строк кода и будет чудесное исцеление
Ответить с цитированием
  #7 (permalink)  
Старый 16.04.2015, 21:21
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

localStorage сохранение кликнутых элементов
mitiya,
посмотрите 2 раза, кликать по цифрам
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
   div.active::after {
    content: "(ты тыкал меня уже)";
    padding: 0 0 0 5px;
  }

  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
     $(function(){
    var items = JSON.parse(window.localStorage.getItem('x') || "{}");
    var divs = $('div');
    for(var key in items) {
      if (items.hasOwnProperty(key)) {
        $('div').eq(key).addClass('active');
      }
    }
    window.localStorage.setItem('x', JSON.stringify(items));
    divs.click(function(event) {
    event.stopPropagation();
    var i = divs.index(this);
    items[i] = 1;
    window.localStorage.setItem('x', JSON.stringify(items));
    $('div').eq(i).addClass('active');
})
});


  </script>
</head>

<body>
<div >
<div >1</div>
<div >2</div>
<div >3</div>
<div >4</div>
<div >5</div>
<div >6</div>
<div >7</div>
</div>
<div >8</div>
<div >9</div>
<div >10</div>
<div >11</div>
<div >12</div>
<div >
<div >13</div>
<div >14</div>
<div >15</div>
<div >16</div>
</div>



</body>

</html>

Последний раз редактировалось рони, 03.02.2020 в 17:28.
Ответить с цитированием
  #8 (permalink)  
Старый 16.04.2015, 22:14
Кандидат Javascript-наук
Отправить личное сообщение для mitiya Посмотреть профиль Найти все сообщения от mitiya
 
Регистрация: 13.01.2011
Сообщений: 114

я понял как это работает и оно работает в случае "макет с минимальным html - 10 строк кода",но вот у этих дивов около 700 вперемешку с img и h и тд. и вот это код не работает
$('html, body').animate({
		scrollTop: $("div",$('#text')).eq(br.storage.get('pos')).offset().top
	}, 200);

точнее он работает, но скролит не к тому элементу, и чем индекс больше тем больше смещение.
Ответить с цитированием
  #9 (permalink)  
Старый 16.04.2015, 22:43
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

mitiya,
прокрутка для чего может так
http://jsfiddle.net/vlasenkofedor/2St2g/
а так ссылку на которую кликнули можно где угодно сохранить и даже в элемент который кликнули
Ответить с цитированием
  #10 (permalink)  
Старый 16.04.2015, 22:58
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

mitiya,
да хоть 1000 элементов если это одна и таже страница -- покажите код
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сохранить ссылку после перезагрузки страницы? raindew jQuery 0 25.09.2013 22:15
Управление скроллом "а-ля тач" HonesT Элементы интерфейса 2 27.08.2013 14:25
Как сохранить быстро перезагружаемую страницу? avatator Общие вопросы Javascript 8 16.05.2013 01:39
Как сохранить css всей страницы? KupueIIIKo Events/DOM/Window 1 20.01.2012 10:39
Как постоянно запускать одну и туже ссылку? Maxim Общие вопросы Javascript 28 27.02.2009 09:25