Madeas
@Madeas
UI / UX Designer, Frontend Developer

Закрытие окна кнопкой отмена на Vue.js?

Подскажите, как реализовать аналог события @click="$emit('close')" при помощи кнопки esc на клавиатуре?

В данном случае, модалка вью-компонент.

@keyup.esc="('close')"
@keyup.esc="$emit('close')" tabindex="0"
не срабатывает
  • Вопрос задан
  • 446 просмотров
Решения вопроса 1
Чтобы элемент генерировал событие @keyup нужно чтобы элемент был в фокусе.

Вот пример как это работает
https://codepen.io/xevin/pen/BaBJWve?editors=1010
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Hyuugo
Можно реализовать через event listener:
mounted: function () {
  document.addEventListener("keydown", (e) => {
    if (this.show && e.keyCode == 27) {
      this.$emit("close");
    }
  });
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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