@svm2001

Как убрать класс у активного элемента при клике на другой?

Делаю список песен, есть кнопка "play" и "pause" на каждой песне. При клике на "play" самой кнопке дается класс "hidden", кнопке "pause" дается класс visible и песне (родительскому блоку) задается класс "active".

Мне нужно при переключении песен удалять класс "active" с той песни, которая играла до этого. (это не могу сделать) И добавлять класс на ту, что играет сейчас (это смог сделать)

<div class="radioSong__item song">
    <div class="song__play"></div>
     <div class="song__pause"></div>
</div>

<div class="radioSong__item song">
    <div class="song__play"></div>
     <div class="song__pause"></div>
</div>

<div class="radioSong__item song">
    <div class="song__play"></div>
     <div class="song__pause"></div>
</div>

<div class="radioSong__item song">
    <div class="song__play"></div>
     <div class="song__pause"></div>
</div>


вот код:
let songPlay = document.querySelectorAll('.song__play');
let songPause = document.querySelectorAll('.song__pause');
let song = document.querySelectorAll('.song');

if(songPlay) {
    songPlay.forEach(item => {
        item.addEventListener('click', (e) => {
            item.nextElementSibling.classList.add('visible');
            item.nextElementSibling.classList.remove('hidden');
            item.classList.add('hidden');
            item.classList.remove('visible');
            item.closest('.song').classList.add('active');
        })
    })
}

if(songPause){
    songPause.forEach(item => {
        item.addEventListener('click', () => {
            item.previousElementSibling.classList.add('visible');
            item.previousElementSibling.classList.remove('hidden');
            item.classList.add('hidden');
            item.classList.remove('visible');
            item.closest('.song').classList.remove('active');
        })
    })
}

song.forEach(item => {
    item.addEventListener('mouseout', () => {
        item.querySelector('.song__play').classList.remove('visible')
    })
})
  • Вопрос задан
  • 105 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
28 нояб. 2024, в 18:46
3000 руб./за проект
28 нояб. 2024, в 17:46
10000 руб./за проект
28 нояб. 2024, в 17:38
12000 руб./за проект