如何在用户每次按下 javascript 中的键时触发事件

How to have an event trigger every time a user presses a key in javascript

首先,我是 Javascript 的新手。每次用户按下 Javascript 中的键时,我都希望事件重复一次。请参阅下面的示例代码:

<script>
    document.addEventListener('keydown', function(event){
        if(event.keyCode == 39) {
            document.write('Right was pressed');
        }
    })
</script>

当此代码为运行且按下右箭头键时,该语句仅打印一次。我想让事件注册多次,与用户按下键的次数一样多。有什么建议吗?

每次按下按键时都会触发该事件(如果按住按键则重复),但是 document.write() 每次都会覆盖内容,因此看起来没有任何变化,您可以使用 innerHTML改为(只是为了看效果):

document.addEventListener('keydown', function(event){
  if(event.keyCode == 39) {
    //Not recommended as 'T.J. Crowder' mentioned in the comment
    document.body.innerHTML += 'Right was pressed <br>';
  }
})

您可以使用 console.log() 进行调试并确保事件已被调用:

document.addEventListener('keydown', function(event){
  if(event.keyCode == 39) {
    console.log('Right was pressed');
  }
})

其实确实触发了很多次。问题是 document.write 会清除 DOM.

This example 很适合我。

脚本:

var counter = 0;
document.addEventListener('keydown', function(event){
    if(event.keyCode == 39){
    ++counter;
    document.getElementById("demo").innerHTML = "Key downed " + counter;
  }
});

html:

<p id="demo">

</p>