我知道这个问题之前已经被问过并回答了,我已经找到了答案,但我有一个问题,我需要一些后续信息,因为我的代表太低,我无法发表评论要求的相关答案!
我正在使用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,则会发生相反的情况。基本上,只有第二种情况才能正常运作。
有人可以向我提出一个关于为什么会这样做的建议吗?
答案 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();
});