Задать вопрос
@msdoc11

Как удалять классы с других элементов при нажатии на текущий (не все так просто, подробнее внутри)?

Привет, это кусок кода от кастомного селект, пока их три штуки, то есть полный код создает три кастомных селекта, но это не так важно. Сейчас при клике на элемент он открывается, а при втором клике закрывается. Как сделать, чтобы если вдруг какой то был открыт, а я кликнул на другой который открылся, а предыдущий закрывался?
this.container = document.createElement("div");
this.container.classList.add('custom-select');
this.optionsWrapper = document.createElement("div");
this.optionsWrapper.classList.add('options-wrapper');
this.container.addEventListener("click", this.toggleOptions.bind(this));

CustomSelect.prototype = {
toggleOptions: function () {
    if (event.target !== this.reset) {
       this.container.classList.toggle("hide");
       this.optionsWrapper.classList.toggle("hidden");
    }
},
};

Пример- нужно, чтобы открытым оставался один
63cd7207c0743473256371.png
  • Вопрос задан
  • 93 просмотра
Подписаться 1 Простой 2 комментария
Помогут разобраться в теме Все курсы
  • Skillbox
    JavaScript
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик расширенный
    13 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Решения вопроса 1
delphinpro
@delphinpro Куратор тега JavaScript
frontend developer
"Не все так просто". Как пафосно.

А на деле всего лишь реализовать изъезженную штуку. Click outside называется. Закрытие селекта при клике вне его.
Гуглить по фразе javascript click outside, ответов - тысячи.

UPD
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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