/
creativezen
/
insidium
Обзор
Документация
Войти
/
creativezen
/
insidium
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/js/components/dropdown.js
39 строк
1 KB
Anton Goul'art
git first commit
28 июн 2024, 20:39
28 июн 2024, 20:39
bb21df9
Код
Авторство
О чём код?
let model = { opened: false, activeDropdown: null, } export function simple() { // слушаем событие клик по документу document.addEventListener('click', function(e) { // если клик по кнопке выпадающего списка if(e.target.closest('.js-dropdown [data-button]')) { e.stopPropagation() // сохраняем локально текущий выпадающий список model.activeDropdown = e.target.closest('.js-dropdown') // меняем состояние выпадающего списка dropdownSwitch(model.activeDropdown) // выходим из сценария return } // если какой-то выпадающий список открыт if(model.opened) { // скрвыем список model.activeDropdown.classList.remove('active') // меняем состояние в модели model.opened = false } }) } function dropdownSwitch(dropdown) { if(model.opened) { dropdown.classList.remove('active') model.opened = false } else { dropdown.classList.add('active') model.opened = true } }