Как я могу предотвратить повторное открытие / анимацию раскрывающегося списка, если оно уже открыто на сайте темы 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);
},
};
Снимок экрана раскрывающегося списка:
Благодаря!
Изменить (объяснение, почему это не тот же вопрос, что и предложенный): этот вопрос более конкретен о предотвращении повторного открытия раскрывающегося списка. Оставить его открытым после зависания уже решено. Я дам ответ в предложенном вопросе, если он поможет другим, и отмечу его как решенный / ответ. Пойду туда и отвечу сейчас.