не срабатывает отмена закрытия меню

Рейтинг: 0Ответов: 1Опубликовано: 27.04.2023

Есть меню, которое должно закрывать, когда убираешь мышь с него, и не закрываться, если возвращаешься (так надо, потому что меню чуть ниже отрывающего его элемента) пытался так, но не работает, меню все равно закрывается:

function showHideMenu (e) {
    //здесь проверки на cl

    if (!cl) {
        closeTimeout = setTimeout (hideDDMenu, 500);
    } else {
        openDDMenu();
        clearTimeout (closeTimeout);
    }
    console.log(closeTimeout)
}

Ответы

▲ 0

Я правильно понял? Тебе так нужно? Сделал на примере с input

   
const block = document.querySelector('.search');
document.addEventListener('mouseover', active)

function active(event){
    if(event.target.closest('.search__button')){
        block.classList.add('active-search')
    } else if  (!event.target.closest('.search')){
        block.classList.remove('active-search')
    }
}
.search{
    display: flex;
    height: 45px;
}

.search__input{
    display: none;
}

.active-search input{
    display: block;
    min-height: 100%;
    width: 200px;
}

.search__button{
    min-height: 100%;
}

.search span:first-child{
    display: block;
}
.search span:last-child{
    display: none;
}

.active-search span:first-child{
    display: none;
}
.active-search span:last-child{
    display: block;
}
<div class="search">
        <input type="search" maxlength="16" class="search__input">
        <button class="search__button ">
             <span>Открыть меню</span>
             <span>Закрыть меню</span>
        </button>
</div>