onKeyPress vs. onKeyUp 和 onKeyDown

2022-08-29 23:15:43

这三个事件有什么区别?在谷歌搜索时,我发现:

  • 当用户按某个键时,将触发该事件。onKeyDown
  • 当用户释放密钥时,将触发该事件。onKeyUp
  • 当用户按下并释放一个键(后跟 ) 时,将触发该事件。onKeyPressonKeyDownonKeyUp

我理解前两个,但与?是否可以在不按键 () 的情况下释放键 ()?onKeyPressonKeyUponKeyUponKeyDown

这有点令人困惑,有人可以帮我解决这个问题吗?


答案 1

NOTE 现已弃用。请改用。KeyPressKeyDown

KeyPress,并分别类似于:、和 。KeyUpKeyDownClickMouseUp,MouseDown

  1. Down首先发生
  2. Press第二次发生(当输入文本时)
  3. Up最后发生(当文本输入完成时)。

唯一的例外是webkit,它有一个额外的事件:

keydown
keypress
textInput     
keyup

下面是一个代码段,您可以在事件被触发时亲自查看:

window.addEventListener("keyup", log);
window.addEventListener("keypress", log);
window.addEventListener("keydown", log);

function log(event){
  console.log( event.type );
}

答案 2

在此处查看此答案中最初使用的存档链接

从该链接:

从理论上讲,和 事件表示正在按下或释放的键,而事件表示正在键入的字符。该理论的实现在所有浏览器中都不相同。onKeyDownonKeyUponKeyPress