如何在用户每次按下 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>
首先,我是 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>