用户可以输入1,2或3作为答案。记录为:
case 49: // "1"
press = "1";
GameScore();
break;
case 50: // "2"
press = "2";
GameScore();
break;
case 51: // "3"
press = "3";
GameScore();
break;
我有一系列幻灯片显示:
var slides = new Array();
slides = [
{ seq:0, id: 'intro1',},
{seq:1, id: 'intro2'},
{ seq:2, id: 'intro3'},
{ seq:3, id: 'nexttrial'},
{ seq:4, id: 'secondgame'}
];
这部分代码(在进入下一个游戏集之前,检查密钥并显示正确或不正确的500毫秒。
function GameScore(){
if( slides[curSlide].id == "firstgame" ){
if (press=="1"){
$("#text").html("<P> Correct! </p>");
waitTime = setTimeout(function(){ NextGame()}, 500);
}
else{
if (press=="2" || press=="3"){
$("#text").html("<P> Incorrect :(! </p>");
waitTime = setTimeout(function(){ NextGame()}, 500);
}
}}
我在Firefox中遇到的问题是,在500毫秒的时间范围内,如果玩家第一次按下2并看到“不正确”并快速按下1,他/她就能够改变反馈。所以玩家可以按2,看不正确,快速按1,然后在屏幕上看到正确的闪光灯。
如何为该幻灯片禁用密钥?该幻灯片的类是“box”,id是“firstgame”
我不想使用
$(document).on('keydown',function(e)
{
var key = e.charCode || e.keyCode;
if( key == 49 || key == etc etc etc)
{ e.preventDefault();}
});
因为这会阻止所有密钥在此后注册
谢谢!!编辑:
我试过这个来禁用2键
function disable();
$('#firstgame').keypress(function(event) {
if (event.which == 50) {
event.preventDefault();
}
});
并将游戏分数改为
function GameScore(){
if( slides[curSlide].id == "firstgame" ){
if (press=="1"){
**disable();**
$("#text").html("<P> Correct! </p>");
waitTime = setTimeout(function(){ NextGame()}, 500);
}
else{
if (press=="2" || press=="3"){
$("#text").html("<P> Incorrect :(! </p>");
waitTime = setTimeout(function(){ NextGame()}, 500);
}
}}
但它没有做任何事情