Как я могу предотвратить повторное открытие / анимацию раскрывающегося списка, если оно уже открыто на сайте темы WordPress Divi?

Я работаю над сайтом WordPress с темой Divi. Когда я нахожу раскрывающийся список на панели навигации, он остается открытым и закрывается при нажатии по желанию. Но последняя проблема заключается в том, что если вы снова наведете курсор на раскрывающийся список, когда он уже открыт, он снова оживет. Короче, он открывается снова, когда уже открыт. Как я могу предотвратить его повторное открытие, когда он уже открыт?

Сайт:https://sprider.se.knowe.work/

Код JS для настройки поведения раскрывающегося списка:

       jQuery(document).ready(function() {
    spriderMain.run();
});

var spriderMain = {

    run() {
        // spriderTopMenu.run();
        document.addEventListener('click', this.onAnyClick, true);
        this.fixDropdown();
    },

    fixDropdown() {
        var dropdown = document.querySelectorAll("nav > ul > li")[1];
        console.log(dropdown);
        dropdown.addEventListener("mouseover", this.onDropdownMouseOver);
    },

    onDropdownMouseOver() {
        var dropdown = document.querySelectorAll("nav > ul > li > ul")[0];
        dropdown.style.visibility = "visible";
        dropdown.style.opacity = "1";
        setTimeout(function() {
            var dropdownBox = document.querySelectorAll("nav > ul > li")[1];

            console.log("hover detected!");


            // dropdownBox.style.pointerEvents = "none";
            dropdownBox.style.transition = "none";
            dropdownBox.style.transform = "none";
            // dropdown.style.pointerEvents = "none";
            dropdown.style.transition = "none";
            dropdown.style.transform = "none";

            var links = dropdown.querySelectorAll("a");
            console.log(links);
            for (var i = 0; i < links.length; i++) {
                console.log(links[i]);
                links[i].style.transition = "none";
                links[i].style.transform = "none";
            }
        }, 500);
    },

    onAnyClick() {
        setTimeout(function() {
            var dropdown = document.querySelectorAll("nav > ul > li > ul")[0];
            dropdown.style.visibility = "hidden";
            dropdown.style.opacity = "0";
            var dropdownBox = document.querySelectorAll("nav > ul > li")[1];
            dropdownBox.style.pointerEvents = "auto";
            dropdown.style.pointerEvents = "auto";
        }, 100);
    },

};

Снимок экрана раскрывающегося списка:

Благодаря!

Изменить (объяснение, почему это не тот же вопрос, что и предложенный): этот вопрос более конкретен о предотвращении повторного открытия раскрывающегося списка. Оставить его открытым после зависания уже решено. Я дам ответ в предложенном вопросе, если он поможет другим, и отмечу его как решенный / ответ. Пойду туда и отвечу сейчас.

0 ответов

Другие вопросы по тегам