SlavaMaxwell
@SlavaMaxwell
Frontend разработчик

Как сделать показать все элементы в фильтре?

Фильтрация работает, но вот если нажать на Все то добавляется всем блокам класс none
сам код
let filterBox = document.querySelectorAll('.js-box-filter');
let filterActive = document.querySelectorAll('.js-filter-wrap a')

document.querySelector('.js-filter-wrap').addEventListener('click', (event) => {
    event.preventDefault()

    if (event.target.tagName !== 'A') return false;
    let filterBtn = event.target.dataset['filter'];

    filterBox.forEach(elem => {
        elem.classList.add('none');

        if (filterBtn === elem.dataset['work']) {
            elem.classList.remove('none');
        }
        
        

        if (filterBtn !== elem.getAttribute('data-work') == 'all') {
            elem.classList.remove('none');
            console.log(filterBtn);
        }
    });

});

filterBox - сами фильтрованные элементы
filterBtn - кнопки фильтрации
атрибут у элеметов data-work=""
атрибут у кнопко фильтров
data-filter=""
  • Вопрос задан
  • 86 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
filterBox.forEach(n => {
  n.classList.toggle('none', ![ 'all', n.dataset.work ].includes(filterBtn));
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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