Задать вопрос
wadara
@wadara

При нажатии на аккордеон, открывается только первая строчка из трех, как сделать правильно?

Код который я использую

Проблема в том, что я понимаю что я не добавил такие строчки как: "addclass, removeclass"
Но я не уверен в этом, уже несколько дней пытаюсь понять как это всё правильно сделать, поэтому надеюсь что мне кто-то ответит и да, я только учусь js
Так же хотел спросить, как сделать открытие и закрытие только при нажатии на title, потому что аккордион закрывается так же и при нажатии на text
Спасибо!
  • Вопрос задан
  • 146 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 1
Seasle
@Seasle Куратор тега CSS
const accordions = document.querySelectorAll('.accordion__card');

for (const accordion of accordions) {
  const title = accordion.querySelector('.accordion__card__title');
  const text = accordion.querySelector('.accordion__card__text');

  title.addEventListener('click', () => {
    if (text.classList.contains('accordion__card__text--active')) {
      text.classList.remove('accordion__card__text--active');
    } else {
      for (const accordion of accordions) {
        const text = accordion.querySelector('.accordion__card__text');

        text.classList.remove('accordion__card__text--active');
      }

      text.classList.add('accordion__card__text--active');
    }
  });
}

Ту часть, на которую пользователь нажимать должен лучше сделать кнопкой. А еще вот это можете почитать.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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