jQuery使用keydown / keyup / keypress事件只触发一次而不是多次按住键

时间:2016-05-31 00:06:30

标签: javascript jquery

我试图在主板上的每个按键上添加第一个相同类别的同一个div。

  1. 使用按键,当用户按下键时,会导致事件在按住(并继续运行)时触发。我想停止这一点,即使按下按键,也只能在按键上触发一次。
  2. <div class="player1"></div>
    

    $(document).on('keydown', function() {
        $('.player1:last').after('<div class="player1">Go!<div>');
    })
    

1 个答案:

答案 0 :(得分:4)

  
      
  1. 使用按键,当用户按下该键时,会导致该事件   当它按住(并继续运行)时发射。我想阻止它   并且即使按住键,也只能在按键上触发一次该功能   下来。
  2.   

您可以使用.one()附加keydown事件,在keyup事件重新附加keydown事件时再次使用.one(),这应该会阻止{{1}按住键时调用处理程序。

keydown
function handleKeyDown() {
    $('.player1:last').after('<div class="player1">Go!<div>');
}

var d = $(document);

d.one('keydown', handleKeyDown)
.on("keyup", function() {
  d.one("keydown", handleKeyDown)
})

相关问题