这真的很奇怪。
我有一个文本区。我收听快捷键和快捷键事件。
当我按下"(“时,e.keyCode == e.which == 40会触发快捷键
当我按下向下键时,e.keyCode == e.which == 40将触发keyup
这有什么奇怪的?
发布于 2011-12-15 11:35:40
keydown和keyup事件提供一个代码,指示按下了哪个键,而keypress指示输入了哪个字符。
"(“的字符代码是40 (keypress事件),向下箭头的键代码也是40 (keyup)。
尝试:
String.fromCharCode(40); // "("发布于 2011-12-15 11:39:17
传统上,箭头键与ASCII代码重叠,但对程序员来说是以两个字节的序列表示的,因此您知道按下了一个特殊的键。随着Unicode的出现,这不再是一个干净的解决方案。
浏览器已经实现了不同的方式来表示对Javascript运行时的特殊键输入。详细信息请参阅explained here。
当检测到箭头键时,我通常使用'keydown‘事件,因为这个事件有正确的键代码,并且当用户输入左括号时,会用不同的键代码(9的那个)触发。在您希望允许用户通过按住箭头键重复键控事件的情况下,这可能不起作用。
https://stackoverflow.com/questions/8514711
复制相似问题