Запись текущего и предыдущего элементов
Ребята, подскажите, пожалуйста, как мне решить следующую задачу:
У меня есть массив 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 Я получаю конкретный элемент, на который я навел. Каким образом мне сделать, что при последующем выполнении события мне записывать две переменные. Первая, элемент на который я навел. Вторая, предыдуший элемент на который я наводил. |
s24344,
var prev; |
<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> |
Большое спасибо.
|
Вы не могли бы мне ещё подсказать. Действую по тому же подходу, задача такая же, записывать в переменные на каждое событие текущий и предыдущий элементы, но 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; }); |
s24344,
строки 2 и 3 перенесите в строку ноль, при фокусе вы создате эти переменные снова и снова, а нужно создать только один раз, а потом только менять значение в этих переменных, только так в них можно будет что-то хранить, от фокуса до фокуса. |
Спасибо.
|
Часовой пояс GMT +3, время: 06:40. |