Как-то так, уже мутновато на глазок делать, то тестить лень.
// Получаем все элементы с классом .item
const level1 = document.querySelectorAll('.is-nested');
let lastItem;
// Добавляем обработчик события для каждого элемента
level1.forEach(item => {
let closeTimer;
// Добавляем класс .is-active при наведении мыши
item.addEventListener('mouseenter', () => {
clearTimeout(closeTimer);
if (lastItem && lastItem !== item) {
lastItem.classList.remove('is-active');
} else {
item.classList.add('is-active');
}
lastItem = item;
});
// Удаляем класс .acis-active при уходе мыши
item.addEventListener('mouseleave', () => {
closeTimer = setTimeout(() => {
item.classList.remove('is-active');
}, 1 * 1000);
});
});