на 30-й строке мы говорим что блокируем любой клик в этой зоне,то есть кликая сюда мы не закроем наш список в то же время на 18 строке мы говорим что если есть клас show,а он есть раз мы кликнули по Селекту,то мы ставим прослушку события на функцию hideChecboxes ,особенность в том что там прослушка ставится на window то есть на люббое место сайта кроме 30 строки где мы поставили мертвую зону для клика stopPropagation,этим и эмулируется "клик в сторону".
Запуская функцию hideChecboxes,то есть клик в сторону мы удаляем класс show,чем закрываем список и ниже же сразу удаляем прослушку чтобы не было рекурсии постояной при клики в любое место.
Вот моя логика как я понял,я её написал чтобы у вас в будущем если вы будите отвечать таким недлалеким как я ьбыло понимание как мы недалёкие думаем.
спасибо большое за ответ!
релально очень полезный и повысил мой уровень в JS!
Ridz: 1. prntscr.com/bfdk5j условие тернарного оператора мне не понятно,если мы кликаем на select ,мы даём ему класс show,,дальше мы проверяем contains,есть ли там show ,если есть то мы запускаем функцию hide,она удаляет класс show и событие прослушки,но где здесь указано что это прозойдет при клике в сторону?
я имею ввиду для меня не понятно где указывается что при клике в сторону закрывается checkboxes.
Ridz: prntscr.com/bfcslg
можете пожалуйста подробней объяснит что делать каждая строка,начиная с 65?
я чо то не понимаю зачем столько прослушек события и как они работают у вас в коде
maaGames: Задумка хороша,спасибо!Осталось найти как оптимизированно на джс это сделать.Что бы переходя в разные клетки он сам автоматом чекал по шаблону