为什么jQuery的event.which在Firefox和Chrome中给出了不同的结果?

看看 this live demo(来自jQuery的网站).

在Firefox中单击 – (破折号)表示event.which为173,而在Chrome中执行相同操作则产生189.

This jQuery page说event.which应该规范化跨浏览器的一致性.但是,看起来这不是真的.

为什么这种不一致?

解决方法

This jQuery page says that event.which should be normalized for cross browser consistency. But,it looks like this is not true.

jQuery规范化属性名称(例如,总是哪个,而不是哪个或keyCode取决于浏览器),而不是属性的值,这将显着更复杂.

从keydown / keyup获得的密钥值不仅会因浏览器而异,还会受键盘布局的影响. Jan Wolter在JavaScript Madness: Keyboard Events页面上有很多血淋淋的细节.除此之外,你可以在那个页面上看到,对于那个键,Firefox会给你109,IE(显然是Chrome)会给你189,而Opera显然习惯用45(但在我的Linux测试中,他们现在跟109)一起去.

对于可打印的击键(如 – ),最好使用按键事件,它会为您提供结果字符.

相关文章

jQuery插件的种类 1、封装对象方法 这种插件是将对象方法封装起来,用于对通过选择器获取的jQuery对象进...
扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间。 入门 编写一个jQuery插件开始于给...
最近项目中需要实现3D图片层叠旋转木马切换的效果,于是用到了jquery.roundabout.js。 兼容性如图: ht...
一、什么是deferred对象? 开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异...
AMD 模块 AMD(异步模块定义,Asynchronous Module Definition)格式总体的目标是为现在的开发者提供一...