【问题标题】:jQuery using keydown/keyup/keypress event to fire only one time instead of multiple times when key held downjQuery 使用 keydown/keyup/keypress 事件只触发一次,而不是在按住键时触发多次
【发布时间】:2016-05-31 00:06:29
【问题描述】:

我正在尝试在板上每个按键的第一个之后添加具有相同类的相同 div。

  1. 使用按键,当用户按住键时,它会在按住键时触发事件(并继续运行)。我想停止这种情况,即使按键被按住,也只会在按键时触发一次该功能。

<div class="player1"></div>

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

【问题讨论】:

  • 您有两个问题吗?还是一个问题?
  • 哈哈,我添加了第二个问题,所以我不必写其他问题

标签: javascript jquery


【解决方案1】:
  1. 使用keypress,当用户按住键时,会引发事件 按住(并继续运行)时触发。我想阻止它 即使按键被按住,也只能在按键上触发一次功能 下来。

您可以使用.one() 附加keydown 事件,在keyup 事件中再次使用.one() 重新附加keydown 事件,这应该可以防止在按住键时调用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)
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js">
</script>
<div class="player1"></div>

【讨论】:

    猜你喜欢
    • 2011-03-23
    • 2022-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-10
    • 2015-03-04
    • 1970-01-01
    相关资源
    最近更新 更多