试图找出是否有一个jQuery的错误,或者如果它是我'做的事情

Trying to figure out if there is a bug in jQuery or if it's something I'm doing

本文关键字:如果 或者 是否 有一个 错误 jQuery      更新时间:2023-09-26
$(document).keydown(function (event)
    {
    alert(event.which);
    });

对于分号键;,这在Firefox中是59,在Chrome中是186。但是,在keydown事件的jQuery参考页面中,它说

当浏览器使用不同的属性来存储这些信息时,jQuery规范了。which属性,因此您可以可靠地使用它来检索键代码。此代码对应于键盘上的一个键,包括特殊键(如箭头)的代码。"

我错过了什么吗?

which属性是按下键的"一站式商店",允许您忽略keyCodecharCode属性之间的差异。这就是jQuery提供的"规范化"。

which值的差异归结为各种浏览器提供信息的方式之间的差异-因此您必须编写代码来处理返回的不同值。网上有一些关于这种行为的参考

在谷歌上快速搜索一下,你只需要测试这两种情况。

我不知道jQuery,但我建议坚持使用按键事件输入键,只使用keydown事件的特殊键,如箭头

这是jQuery所做的"规范化"的全部:

if ( event.which == null ) {
    event.which = original.charCode != null ? original.charCode : original.keyCode;
}

如果charCode不存在,看起来只会得到keyCodecharCode只在event.which不存在的情况下使用。它不会改变周围的数字使它们一致

相关文章: