рони,
Сообщение от рони
|
const ul = document.querySelector('.results__filter-inner');
let tempLi;
document.addEventListener('click', event => {
let filterUl = event.target.closest('ul');
let li = event.target.closest('li');
if (tempLi && li != tempLi) {
tempLi.classList.remove('active-show');
tempLi = null;
}
if (filterUl == ul) {
if (li.querySelector('.filter__list')) {
tempLi = li;
let input = event.target.closest('[type="checkbox"]');
if (input) li.querySelectorAll('[type="checkbox"]').forEach(el => el != input && (el.checked = false));
if (event.target.closest('.filter__list')) tempLi.classList.toggle('active-show');
}
if (li.querySelector('.clear')) {
ul.querySelectorAll(':checked').forEach(el => el.checked = false);
}
}
})
|
я в шоке от лаконичности кода
но он не работает у меня - ничего не происходит, а при нажатии на document вне фильтров иногда ошибка вылазит:
Cannot read property 'querySelector' of null.
Теперь интересно на сколько мой код мне сократить можно