jQuery - 绑定按键功能

时间:2014-05-25 10:30:19

标签: jquery function onkeypress

我知道这个问题之前已经被问过并回答了,我已经找到了答案,但我有一个问题,我需要一些后续信息,因为我的代表太低,我无法发表评论要求的相关答案!

我正在使用this post的sygmoral答案,这应该是页面下的第二个答案。我使用两个功能来操作图像滑块,一个向左滑动,一个向右滑动。使用鼠标光标单击屏幕按钮时,每个功能都可以正常运行,但是当使用sygmoral的按键功能时,只有一个左/右箭头键可以正常触发功能......

按键功能代码如下:

    $(document).keydown(function(e){
        switch(e.which) {
            case 37:
            slideLeft();

            case 39:
            slideRight();

            default: return;                
        }
        e.preventDefault();
    });

案例39可以正常运作。 case 37触发slideLeft()函数,图像向左滑动,但随后立即滑回右侧。如果我交换案例39和37,则会发生相反的情况。基本上,只有第二种情况才能正常运作。

有人可以向我提出一个关于为什么会这样做的建议吗?

2 个答案:

答案 0 :(得分:0)

在每次调用函数后,您都缺少break; ...

例如,而不是

case 37:
  slideLeft();
你应该

case 37:
  slideLeft();
  break;

有关JavaScript中switch语句的详细信息,请参阅http://www.w3schools.com/js/js_switch.asp

答案 1 :(得分:0)

你在switch语句的每个分支中都缺少break;个关键字 因此,如果按左箭头,您将进入案例37 - 处理slideLeft(),然后处理其余代码(slideRight();return;

请参阅有关MDN的switch文档。

这就是你需要的:

$(document).keydown(function(e){
    switch(e.which) {
        case 37:
            slideLeft();
            break;
        case 39:
            slideRight();
            break; // isn't needed in your case
        default:
            return;                
    }
    e.preventDefault();
});