Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.07.2018, 16:06
Профессор
Отправить личное сообщение для s24344 Посмотреть профиль Найти все сообщения от s24344
 
Регистрация: 12.08.2015
Сообщений: 173

Запись текущего и предыдущего элементов
Ребята, подскажите, пожалуйста, как мне решить следующую задачу:
У меня есть массив dom элементов:
[a.nav__item-link, a.nav__item-link, a.nav__item-link, a.nav__item-link, a.nav__item-link, a.nav__item-link, a.nav__item-link, a.nav__item-link]


У каждого из них есть data атрибут:
data-nav-id=""
<a class="nav__item-link" href="players.html" tabindex="0" data-nav-ref="primary-link" data-nav-id="_1"><span>Players</span></a>
<a class="nav__item-link" href="players.html" tabindex="0" data-nav-ref="primary-link" data-nav-id="_2"><span>Players</span></a>


И так далее

При событии mouseenter
Я получаю конкретный элемент, на который я навел.
Каким образом мне сделать, что при последующем выполнении события мне записывать две переменные. Первая, элемент на который я навел. Вторая, предыдуший элемент на который я наводил.
Ответить с цитированием
  #2 (permalink)  
Старый 19.07.2018, 16:13
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 24,874

s24344,
var prev;
Ответить с цитированием
  #3 (permalink)  
Старый 19.07.2018, 16:17
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,288

<div class="el">1</div>
	<div class="el">3</div>
	<div class="el">4</div>
	<div class="el">5</div>
	<div class="el">6</div>
	<script>

		var div = document.querySelectorAll('div'),x;
		div.forEach(el => el.onmouseenter = e =>{
			console.log(el,x);
			x=el;
		} );

	</script>
Ответить с цитированием
  #4 (permalink)  
Старый 19.07.2018, 18:51
Профессор
Отправить личное сообщение для s24344 Посмотреть профиль Найти все сообщения от s24344
 
Регистрация: 12.08.2015
Сообщений: 173

Большое спасибо.
Ответить с цитированием
  #5 (permalink)  
Старый 22.07.2018, 08:16
Профессор
Отправить личное сообщение для s24344 Посмотреть профиль Найти все сообщения от s24344
 
Регистрация: 12.08.2015
Сообщений: 173

Вы не могли бы мне ещё подсказать. Действую по тому же подходу, задача такая же, записывать в переменные на каждое событие текущий и предыдущий элементы, но oldNavPopup, у меня всегда null. Что я делаю не так?

<ul class="nav__list">
	<li class="nav__item">
		<a href="#" class="nav__link">First</a>
		<div class="nav__popup">First popup</div>
	</li>
	<li class="nav__item">
		<a href="#" class="nav__link">Second</a>
		<div class="nav__popup">Second popup</div>
	</li>
	<li class="nav__item">
		<a href="#" class="nav__link">Third</a>
		<div class="nav__popup">Third popup</div>
	</li>
</ul>


document.querySelector('.nav__link').addEventListener('focus', function(event) {
	let oldNavPopup = null;
	let currentNavPopup = null;

	currentNavPopup = event.target.nextElementSibling;

	console.log(currentNavPopup, oldNavPopup); // old у меня всегда null (не перезаписывается)

	oldNavPopup = currentNavPopup;
});
Ответить с цитированием
  #6 (permalink)  
Старый 22.07.2018, 11:07
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 24,874

s24344,
строки 2 и 3 перенесите в строку ноль, при фокусе вы создате эти переменные снова и снова, а нужно создать только один раз, а потом только менять значение в этих переменных, только так в них можно будет что-то хранить, от фокуса до фокуса.

Последний раз редактировалось рони, 22.07.2018 в 11:11.
Ответить с цитированием
  #7 (permalink)  
Старый 22.07.2018, 11:19
Профессор
Отправить личное сообщение для s24344 Посмотреть профиль Найти все сообщения от s24344
 
Регистрация: 12.08.2015
Сообщений: 173

Спасибо.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись элементов массива в БД (несколько) espltd AJAX и COMET 4 29.07.2015 14:10
Вывод случайных элементов из массива в таблицу Narm0 Общие вопросы Javascript 10 06.08.2013 12:39
Удалить и вернуть массив из удаленных элементов splice Paulyyy Общие вопросы Javascript 15 29.05.2013 15:36
Открыть слайд (раздел) текущего пункта меню Demath Элементы интерфейса 8 18.07.2012 02:49
Сгенерировать 2 последовательности и узнать сколько в них одинаковых элементов Ирина Владимировна Общие вопросы Javascript 10 24.03.2012 17:18