Задать вопрос
WafelT
@WafelT
HTML/CSS/JavaScript

Как переделать скрипт этого акордиона?

Привет, есть такой кусок кода акордиона:
document.addEventListener("DOMContentLoaded", () => {
    document.addEventListener("click", (e) => {
        if(e.target.closest(".accordion")) {
            let self = e.target.closest(".accordion");
            const control = self.querySelector(".accordion__control");
            const content = self.querySelector(".accordion__content");
            const menImg = document.getElementById('men');

            if(e.target.closest(".accordion__control")) {
                self.classList.toggle("open");
            }

            const watchHeight = () => {
                content.style.maxHeight = content.scrollHeight + "px";
            };

            // если открыт аккордеон
            if (self.classList.contains("open")) {
                menImg.classList.add('op1');
                control.setAttribute("aria-expanded", true);
                content.setAttribute("aria-hidden", false);
                watchHeight();
            } else {
                control.setAttribute("aria-expanded", false);
                content.setAttribute("aria-hidden", true);
                content.style.maxHeight = null;
            }
        }
    });
});


61c202b66486a162160624.jpeg

Сейчас акордионы открываются в независимости от того есть ли помимо них другие открытые акордионы или нет, нужно переписать скрипт так чтобы открытым мог быть только один акордионы, если один открытый и пользователь хочет открыть другой, открытый должен закрытся.
  • Вопрос задан
  • 80 просмотров
Подписаться 1 Простой 4 комментария
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы