Jquery在特定id / class上禁用特定时间的键击

时间:2013-11-22 17:15:17

标签: jquery html keypress keydown

用户可以输入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);

               }
                }}

但它没有做任何事情

0 个答案:

没有答案