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

Javascript W3学校灯箱jquery添加键绑定,javascript,jquery,html,w3c,Javascript,Jquery,Html,W3c,我正在尝试将keybinds添加到示例lightbox() 但尽管我尽了最大努力,我还是无法让它发挥作用。有人有什么想法吗 我知道我必须用JS来做,我知道左右键的密码。但是我对JS还很陌生,我不知道我应该在哪里做这个函数,以及如何让它连接到next/prev 然后,我希望能够让ESC作为一个关闭以及功能。 任何帮助都将不胜感激 原文: function plusSlides(n) { showSlides(slideIndex += n); } 我的版本到目前为止,不知道我是否在正确的轨道上:

我正在尝试将keybinds添加到示例lightbox() 但尽管我尽了最大努力,我还是无法让它发挥作用。有人有什么想法吗

我知道我必须用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>
})

奇怪的是,他无法逃避工作。我也试过使用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是逗号

“if(e.which==37&&next)”后面应该跟一个语句,但该语句不存在。我尝试过你的版本,它只使用句点和逗号,但当我尝试使用其他键时。这是行不通的。我试过37岁,39岁,甚至27岁。但它不起作用…是的,很抱歉它应该是onkeydown,现在试试。我编辑了答案现在37和39都成功了。但我怎样才能逃出去工作呢?它说27表示转义,但当添加另一行代码时,它与elseif语句完全相同,并将27与closeModel()一起作为它的事件。它不会起作用。它对我来说非常好,见更新的答案,你就是这么做的吗?我在他们的编辑器里试过了,效果很好。我发现了问题所在。代码中有一点c。。所以它是键码而不是键码。。。英雄联盟
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();
    }
};