Вы не могли бы мне ещё подсказать. Действую по тому же подходу, задача такая же, записывать в переменные на каждое событие текущий и предыдущий элементы, но 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;
});