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

Как сделать поворот иконки при клике на пункт аккордеона?

<ul class="questions-block j-questions-block">
                  <li class="questions-block__item">
                    <p class="questions-block__title">
                      <svg class="icon" width="20" height="20">
                        <use xlink:href="./images/sprite.svg#plus"></use>
                      </svg>Пункт
                    </p>
                    <p class="questions-block__desc">Текст</p>
                  </li>
                  <li class="questions-block__item">
                    <p class="questions-block__title">
                      <svg class="icon" width="20" height="20">
                        <use xlink:href="./images/sprite.svg#plus"></use>
                      </svg>Пункт
                    </p>
                    <p class="questions-block__desc">Текст.</p>
                  </li>


const questionsBlockTitle = document.querySelectorAll('.questions-block__title');
const questionsBlockDesc = document.querySelectorAll('.questions-block__desc');

for (let i = 0; i < questionsBlockTitle.length; i++) {
  questionsBlockTitle[i].onclick = function() {
    for(let j = 0; j < questionsBlockDesc.length; j++) {
      questionsBlockDesc[j].classList.add('questions-block__desc--inactive');
    }
    questionsBlockDesc[i].classList.toggle('questions-block__desc--inactive');
  }
}


Как должно быть - Есть рабочий текстовый аккордеон с выпадающими текстами. У каждого questionsBlockTitle есть иконка. По клику на questionsBlockTitle он получает класс questionsBlockTitle--active, вследствие чего иконка поворачивается на 45 градусов и выпадает текст. Соответственно, при клике на другой пункт - поворачивается другая иконка, а эта возвращается в исходное положение.

Сейчас ничего не поворачивается. Куда прописать questionsBlockTitle--active и заставить иконку вращаться?
  • Вопрос задан
  • 402 просмотра
Подписаться 1 Простой 3 комментария
Решения вопроса 1
@DaveGarrow Автор вопроса
Решение на jQuery

$('.questions-block__title').click(function () {
$(this).toggleClass('active').next().slideToggle();
$('.questions-block__title').not(this).removeClass('active').next().slideUp();
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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