Javascript - выборочно отключить клавишу вниз - PullRequest
0 голосов
/ 01 марта 2020

Мое приложение имеет палитру изображений. Я использую сочетания клавиш для перемещения следующих и предыдущих изображений. Ниже приведен код:

window.addEventListener('keydown', function(e) {
  if (e.which == 37 || e.which == 65) {
    beforeAfterImages(1);
    gtfval();
  }

  if(e.which == 39 || e.which == 68) {
    beforeAfterImages(2);
    gtfval();
  }

})

На этой же странице у меня есть кнопка, которая открывает модальное окно. Модальное окно имеет поля для ввода текста. Во время ввода текста. Когда я нажимаю a или d, палитра изображений за модой продолжает двигаться. Можно ли отключить функции нажатия клавиш при открытии модального окна. Я попробовал следующее:

$('#myModal').click(function() {
  window.addEventListener('keydown', function(e) {
  if (e.which == 37 || e.which == 65) {
    return false;
  }

  if(e.which == 39 || e.which == 68) {
    return false;
  }

})
});

1 Ответ

1 голос
/ 01 марта 2020

Когда вы открываете модал, вы можете редактировать переменную, например, var isModalOpen. Затем проверяйте, что каждый раз, когда пользователь нажимает клавиши:

window.addEventListener('keydown', function(e) {

  if(modalIsOpen) return; // this

  if (e.which == 37 || e.which == 65) {
    beforeAfterImages(1);
    gtfval();
  }

  if(e.which == 39 || e.which == 68) {
    beforeAfterImages(2);
    gtfval();
  }

})
...