如何检测:按两次相同的按键,但第二次按住2秒钟

时间:2013-05-09 04:29:15

标签: jquery navigation keyboard-shortcuts

如何检测:按两次相同的键,但第二次按住2秒钟?

我正在寻找一种有效的方法来检测键码37(左箭头)(或必要时的任何其他键)的keydown事件,然后在释放后立即对同一个键码进行第二次键控1.5或2秒密钥,在给定的延迟内,如1秒。

这是在“回到上一页”(这是我想要做的)和“在同一页面上继续前进这个元素”之间没有混淆的回归

我已经在$(document.ready()标记中尝试使用old_keycode和old_keycode_timepressed以及new_keycode new_keycode_timepressed,但是我需要为我想要的每个键码复制/粘贴整个代码,而代码本身效率不高。< / p>

有人听说过一个可以帮助我的插件,或者有人愿意帮助我吗?

感谢您的时间。

1 个答案:

答案 0 :(得分:2)

<强> jsFiddle demo

var twice_37 = 0;

$(document).on('keyup', function( e ){

  if(e.which===37){         // If left arrow    

    if(twice_37===1){       // (remember that twice_37 is 0 initially)
      alert('Do something! (you pressed Left twice!)');
    }

    twice_37 = 1;          // Set to 1 and...
    setTimeout(function(){ // ...reset to 0 after 1s
      twice_37 = 0; 
    }, 1000);

  }

});