【问题标题】:How to make a keypress event to fire only once in JS [duplicate]如何使按键事件在JS中仅触发一次[重复]
【发布时间】:2016-08-11 05:25:24
【问题描述】:

当我按住按钮时,如何防止函数 move() 被多次触发?即使用户按住键,我也希望它只触发一次。

function pushbtn(event)
{
    var pressBtn = event.keyCode;
    //Move to the right
    if(pressBtn==100)
    {
        move(1933.67);


    }
    //Move to the left
    else if(pressBtn==113)
    {
        move(-1933.67);

    }
}

document.addEventListener('keypress', pushbtn);
document.addEventListener('keyup', releasebtn);

【问题讨论】:

    标签: javascript eventhandler onkeypress


    【解决方案1】:

    dmaurolizer 的KeyPress library 可以很好地控制所有键盘事件。您为事件提供回调函数。 keydown 事件发送一个可选的isRepeat 参数,因此您可以忽略自动重复。下面是一个在视频游戏中使用该功能进行推力控制的示例:

    var my_combos = listener.register_many([
        {
            "keys"          : "up",
            "on_keydown"    : function(e, num, isRepeat) {
                if (isRepeat) return ;
                thrust = 0.1;
            },
            "on_keyup"      : function() {
                thrust = 0;
            }
        }
    ]);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-12
      • 2014-10-22
      • 2011-10-29
      • 1970-01-01
      • 2012-10-22
      • 1970-01-01
      相关资源
      最近更新 更多