试图找出是否有一个jQuery的错误,或者如果它是我'做的事情
Trying to figure out if there is a bug in jQuery or if it's something I'm doing
$(document).keydown(function (event)
{
alert(event.which);
});
对于分号键;,这在Firefox中是59,在Chrome中是186。但是,在keydown事件的jQuery参考页面中,它说
当浏览器使用不同的属性来存储这些信息时,jQuery规范了。which属性,因此您可以可靠地使用它来检索键代码。此代码对应于键盘上的一个键,包括特殊键(如箭头)的代码。"我错过了什么吗?
which
属性是按下键的"一站式商店",允许您忽略keyCode
和charCode
属性之间的差异。这就是jQuery提供的"规范化"。
which
值的差异归结为各种浏览器提供信息的方式之间的差异-因此您必须编写代码来处理返回的不同值。网上有一些关于这种行为的参考
在谷歌上快速搜索一下,你只需要测试这两种情况。
我不知道jQuery,但我建议坚持使用按键事件输入键,只使用keydown事件的特殊键,如箭头
这是jQuery所做的"规范化"的全部:
if ( event.which == null ) {
event.which = original.charCode != null ? original.charCode : original.keyCode;
}
如果charCode
不存在,看起来只会得到keyCode
。charCode
只在event.which
不存在的情况下使用。它不会改变周围的数字使它们一致
相关文章:
- 如果 a 为 false,则 if(a) === if(false)
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- 如何在angularJS中编辑时,如果DB中的值为true,则设置复选框,如果值为false,则取消选中复选框
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 使用Javascript(或者JQuery,如果它更快的话)有一种方法可以更快地对此进行排序
- 在新窗口中打开链接,或者聚焦到它(如果已经打开)
- 如果,或者,虽然不是..需要 JavaScript 帮助
- jQuery -- 为什么只执行第一个条件,或者如果第一个条件为 false,则根本不执行
- 如果(或者可能是hasClass)被忽略了 - javascript
- 如何获得用户's的位置,而无需请求许可,或者如果用户允许一次,则无需再请求
- 或者,如果ajax失败,则通过php加载页面
- Javascript:使用变量,或者如果它's未定义,为默认字符串
- 如果选择使用regex/backreferences替换,或者使用split/replace
- 如果php的返回值是'true'或者'false'
- 试图找出是否有一个jQuery的错误,或者如果它是我'做的事情
- 是否可以调用两个函数,如果ext.form.checkbox被选中?或者为什么我在openlayers中的层不能重新排序
- 如果用户已经登录,如何限制返回按钮,或者在angularjs中直接访问登录页面
- 安全地解析字符串,这样拆分就不会失败,或者如果失败,则至少返回0
- 我应该在调用Jquery插件之前检查页面上的元素,或者调用它并允许它失败,如果没有的话
- 如果我将函数调用推送到数组中,或者作为属性进行赋值,它会推送/赋值返回的值