0

所以我的问题是多按功能键keydown,我需要应用时间限制,当你按下键等待 5 秒然后你可以再次按下键。我怎样才能做到这一点?例子:

$(document).keydown(function (e) {
            var keyCode = e.keyCode || e.which,
                arrow = {left: 37, up: 38, right: 39, down: 40 };
                if(keyCode == arrow.left) {
                    ex1();
                } else if (keyCode ==arrow.right) {
                    ex2();  
                } else if (keyCode == arrow.up) {
                    ex3();  
                } else if(keyCode == arrow.down) {
                    ex4();  
                }

});
4

1 回答 1

0

这是实现这一目标的一种非常简单的方法(如果我理解正确的话)

$(function() {
  var pressed = false; //Global var to hold state

  $(document).keydown(function (e) {

      if( pressed === true ) { //Already pressed don't allow another press
         alert("Please wait 5 seconds between key presses");
         return false;
      }

      pressed = true;
      setTimeout(function() { pressed = false }, 5000);

      var keyCode = e.keyCode || e.which;
      var arrow = {left: 37, up: 38, right: 39, down: 40 };              
      if(keyCode == arrow.left) {
         ex1();
      } else if (keyCode ==arrow.right) {
         ex2();  
      } else if (keyCode == arrow.up) {
         ex3();  
      } else if(keyCode == arrow.down) {
         ex4();  
      }
  });
});

设置一个简单的变量来保持按下状态(真或假)。如果按下为真,则返回假,这样就不会发生任何功能,否则让他们按下按钮。将按下设置为 true 并设置 5 秒超时以将状态返回到 false。

于 2014-04-08T10:45:53.643 回答