Javascript - 有选择地禁用按键

Javascript - Disable Key Down selectively

我的应用程序有一个图像调色板。我正在使用键盘快捷方式移动下一张和上一张图像。以下是代码:

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();
  }

})

在同一页面中,我有一个按钮,可以打开模式 window。模态 window 具有用于文本输入的字段。在文本输入过程中,当我按下 a 或 d 时,模态后面的图像调色板会一直移动。当我打开模式 window 时,我可以禁用按键功能吗?我尝试了以下方法:

$('#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;
  }

})
});

当你打开模式时,你可以编辑一个变量,比如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();
  }

})