@Intelix

Как скрыть элемент при клике на него и клике вне него vue?

Есть селект, нужно чтобы при первом нажатии на него он раскрывался, при повторном скрывался, а также скрывался при клике вне него.

Сделал первый и последний пункт, но из за хука:
mounted() {
    document.addEventListener("click", this.hideSelect.bind(this), true)
  }

Перестает работать скрытие по повторному клику, которое у меня реализовано через переменную @click="selectListShow = !selectListShow"

Как исправить?
  • Вопрос задан
  • 95 просмотров
Решения вопроса 2
delphinpro
@delphinpro
frontend developer
Комментировать
@Intelix Автор вопроса
created() {
      window.addEventListener('click', (e) => {
        if (!this.$el.contains(e.target)){
          this.selectListShow  = false
        }
      })
  },
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Kozack
@Kozack Куратор тега Vue.js
Thinking about a11y
В this.hideSelect нужно проверять не просто куда конкретно кликнул пользователь.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы