- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
相关:JavaScript KeyCode vs CharCode
这是一些您可以在家或在 jsfiddle 中尝试的代码:
el.addEventListener( 'keyup', function( e ) {
console.log( 'Keyup event' );
console.log( e.keyCode );
} );
el.addEventListener( 'keypress', function( e ) {
console.log( 'Keypress event' );
console.log( e.keyCode );
} );
为什么keyCode不一样?
我能理解为什么一个人应该只使用按键,但我不明白的是两个键事件如何在键盘上给出相同的击键时给出不同的键码。
PS:我不担心遗留浏览器的支持,我在 Chrome 中试过这个并且很惊讶,找不到解释。
最佳答案
这些事件的目的完全不同。使用 keyup
和 keydown
来识别物理键,使用 keypress
来识别键入的字符。两者是不同事件的根本不同任务;不要试图将两者混为一谈。特别是,keypress
事件上的 keyCode
通常是多余的,不应使用(除了较旧的 IE,但请参阅下面的链接文档了解更多信息);对于可打印的按键,它通常与 which
和 charCode
相同,尽管浏览器之间存在一些差异。
Jan Wolter's article on key events ,已经链接到另一个答案,对我来说是关于这个主题的权威词,并且有表格描述每个不同的属性为每种类型的键事件和每个浏览器返回什么。
关于javascript - keypress 和 keyup - 为什么 keyCode 不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11030532/
所以我遇到了一些类型不匹配的奇怪情况。总体想法是我正在创建一个游戏,玩家可以在其中定义自己的移动键绑定(bind)、按钮等。 我从一个标准的键事件监听器开始,然后将其馈送到键处理程序中 import
我已经在 SO 上检查了其他问题,但是他们没有回答我的问题。我只想捕获某些 keyCode 并将其替换为另一个。我正在处理字符,而不是空格,我不需要松散焦点等。 下面是我的代码。但是您可以用您的键码替
var keycode = window.event.keycode; game.keyDown(keycode); 此代码在 Chrome、IE、Safari 上运行良好,但当我在 Firefox
var key_code = 65; 结果应该是 character = "Esc"; 我想转换键盘上的所有按键。我的演示在这里: window.onload = function () { var
我目前正在学习 Java,并正在使用 Java FX 进行事件驱动编程。该程序制作一个圆圈,并通过几种不同的方法(按钮、鼠标按钮、向上和向下箭头)增加其大小。 按钮和鼠标单击工作正常,但向上和向下箭头
谁能告诉我如何在检查两个键码{shiftkey + e.keyCode = 37或38或39或40}的组合后在keyup上触发jQuery事件? 我想做一些像下面这样的事情:让我们有一个 p 标签,其
我制作了一个 onkeydown 函数,它水平运行 li 元素 block ,它运行完美,但我需要当第一个和最后一个 li block 处于焦点时,左右键应该被禁用。 有人能建议一个正确的方法吗?提前
我怀疑这是由于我对 keyCode 信息如何传递缺乏了解,但我不知道如何进行这项工作... 我需要从 keydown 事件中获取键码。我可以轻松地完成以下操作: document.getElement
在我的项目中,我尝试从发送 writeInt(e.getKeyCode()) 的另一台计算机接收 dataInputStream,即 readInt() 到这台计算机,但是当我收到 keyCode 时
KeyEvent.getKeyCode()可以返回多少个code? KeyEvent.getKeyCode()返回的代码范围是多少? javadoc for KeyEvent 上列出了 key 代码吗
首先,看我的例子:http://jsfiddle.net/Davood/gkeAM/ 我想在点击链接时获取 keyCode 。 我想发现当点击链接时,是否按下了 ctrl 键? 提前致谢 最佳答案 $
我需要能够读取一个字符并获取与其语言和键盘布局相关的键。 我知道如何看待文化背景和语言。但是我怎样才能用英文输入像'S'这样的字母并知道它在键盘上的键是什么?或者对于更难的问题,我怎样才能知道字母 '
无论键盘和操作系统的语言和文化如何,/(正斜杠)符号的 javascript 键码是什么?在英语键盘中,正斜杠位于与数字键分开的键中,其键码为 191。但是在西类牙语键盘中,该字符与数字 7 位于同一
我在 JavaScript 方面仍处于新手水平。我发现了一个困扰我的错误。 这就是 keyCode 似乎无法在移动设备(chrome)上工作的原因。我刚刚注意到移动设备不支持 keyCode。 我猜我
我需要在文本框中包含星号作为允许的条目。 无论键盘布局和语言如何,如何在 KeyDown 事件下测试此键? 忽略数字键盘,使用葡萄牙语 QWERTY 布局可以通过 Keys.Shift | 测试此键
虽然我知道由于 e.keyCode 与 e.charCode 而捕获键不是微不足道的,但我认为 jQuery 几乎能够规范化大部分那些不一致。 然而 answering this question我发
我以为这会在 Stack Overflow 上的某个地方得到解答,但我找不到。 如果我正在监听按键事件,我应该使用 .keyCode 还是 .which 来确定是否按下了 Enter 键? 我一直在做
$('body').keypress(function(event){ if(event.keyCode == 46){console.log('Delete Key Pressed')};
我有一个自动完成文本字段的ajax请求。结果被附加到div中。现在我需要做的是通过向上和向下箭头浏览结果。但是我没有从 keydown jquery 函数中获取向上和向下的键码。任何帮助都会受到赞赏。
我想知道如何更改KeyCode条件中的功能?我试图做某事,但无法进入 keyCode。 我的代码: $("body").keydown(function (e) { // left arrow
我是一名优秀的程序员,十分优秀!