W3 学校灯箱 jquery 添加按键绑定

W3 school lightbox jquery add keybinds

我正在尝试将键绑定添加到示例灯箱 (link) 但是尽管我尝试了很多,但还是无法正常工作。有人有什么想法吗?

我知道我必须在 JS 中完成并且我知道左键和右键的键码。但是我对 JS 很陌生,我不知道我应该在哪里执行该功能以及如何让它连接到 next/prev.

然后我希望能够让 ESC 也作为关闭函数。 任何帮助将不胜感激。

原版:

function plusSlides(n) {
showSlides(slideIndex += n);
}

我的版本到目前为止,不知道我是否在正确的轨道上:

function plusSlides(n) {
            window.onkeydown = keydown;
            function keydown(e){
                if(e.which == 37 && next)
            }
            showSlides(slideIndex += n);
        }

出自原文:

<a class="prev" onclick="plusSlides(-1)">&#10094;</a>
      <a class="next" onclick="plusSlides(1)">&#10095;</a>

在这个社区的帮助下:

document.onkeydown = function (e) {
   e = e || window.event;
   if(e.keyCode === 39) {
       showSlides(slideIndex +=1);
   } else if(e.keyCode === 37) {
       showSlides(slideIndex -=1);
   } else if(e.keycode === 27) {
      closeModal();
   }

};

奇怪的是不会逃避工作。我也尝试过 keyup。

document.onkeydown = function (e) {
    e = e || window.event;
    if(e.keyCode === 39) {
        showSlides(slideIndex +=1);
    } else if(e.keyCode === 37) {
        showSlides(slideIndex -=1);
    } else if(e.keyCode === 27) {
        closeModal();
    }
};

这行得通,它不能进入​​函数内部,因为您想一直捕获实际的按键操作。您还需要做一些事情,比如在捕获按键之前确保模式实际上是打开的,否则每次有人在您的网站上键入按键时,此代码都会运行。

记录46是句点,44是逗号