我写了一段代码,可以通过向上和向下箭头将元素在6个项目的前面垂直移动。当按下回车键时,我将加载该项的一组图像。代码运行良好,但是在按下回车键后,这段代码需要停止,以便我可以使用箭头键和回车键进行其他操作。现在它只会在按下回车键后继续执行。我尝试使用变量检查,如您所见,但我似乎无法从switch内部更改变量。有人有想法如何使其工作吗?
var enterPushed = false;
if(!enterPushed){
document.addEventListener('keydown', function(event){
if(event.keyCode == 38){
console.log("up");
if(margTop > 122){
margTop = margTop - 60;
marginTop();
i = i - 1;
bliep.play();
}
}
if(event.keyCode == 40){
console.log("down");
if(margTop < 422){
margTop = margTop + 60;
marginTop();
i = i + 1;
bliep.play();
}
}
if(event.keyCode == 13){
switch(i){
case 1:
enterPushed = true;
startup(1);
break;
case 2:
enterPushed = true;
startup(2);
break;
case 3:
enterPushed = true;
startup(3);
break;
case 4:
enterPushed = true;
startup(4);
break;
case 5:
enterPushed = true;
startup(5);
break;
case 6:
enterPushed = true;
startup(6);
break;
}
}
});
}
switch
,改用if (i >=1 && i <= 6) { enterPushed = true; startup(i); }
。不过,switch
可以很好地替代所有的if(event.keyCode...)
语句。 - user1106925