Показать сообщение отдельно
  #11 (permalink)  
Старый 21.10.2020, 14:55
Аспирант
Отправить личное сообщение для Aruta Посмотреть профиль Найти все сообщения от Aruta
 
Регистрация: 08.07.2019
Сообщений: 83

Сообщение от рони Посмотреть сообщение
Aruta,
менять надо класс элемента, а не стили элемента!!!

потому-что if (elem.style.borderColor == activeBorderColor)
activeBorderColor не содержит нужный цвет, строки 3 и 4, нужно вычислять, писать функцию которая вернёт нужный "цвет", браузеры устанавливают цвет параметра в своих единицах измерения, независимо что было в параметре установки (строка 40 и 59)!!!

поэтому лучше проверять класс элемента elem.classList.contains(), а ещё лучше не проверять а менять сразу elem.classList.toggle() и будет одна строка вместо строк 50 - 63.
Цвета пока не трогал, но переписал код.
Добавил 2 класса:
active-show - активированный фильтр - просто когда нажали на фильтр, чтобы посмотреть какие параметры фильтра выбрать можно
active - для активного фильтра с активным чекбоксом

Работает почти всё - осталась одна мелочь и вот её я не понял как и куда надо впихнуть верное условие:
if (click.target =  любой соседний li || на самого себя || в любое другое место на document) {  
    if (текущий активный li имеет class('active-show') ){ 
        li.classList.remove('active-show')
    }
}

Последний раз редактировалось Aruta, 21.10.2020 в 14:58.
Ответить с цитированием