@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
  • Вопрос задан
  • 82 просмотра
Решения вопроса 1
delphinpro
@delphinpro Куратор тега JavaScript
frontend developer
"Не все так просто". Как пафосно.

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

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

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

Похожие вопросы
21 нояб. 2024, в 19:31
500 руб./за проект
21 нояб. 2024, в 19:28
200000 руб./за проект