为了账号安全,请及时绑定邮箱和手机立即绑定

区别有疑惑

不是无法响应系统功能键吗,但是我尝试了,还是可以响应。


正在回答

3 回答

英文输入法:

事件触发顺序:keydown - > keypress - > keyup

中文输入法:

firfox:输入触发keydown,回车确认输入触发keyup

chrome:输入触发keydown、keyup,回车确认输入只触发keydown

IE:输入触发keydown、keyup,回车确认输入触发keydown,keyup

Safari:输入触发keydown、keyup,回车确认输入触发keydown,keyup

opera:输入触发keydown、keyup,回车确认输入触发keydown,keyup

keypress事件不能对系统功能键(例如:后退、删除等,其中对中文输入法不能有效响应)进行正常的响应,

keydown和keyup均可以对系统功能键进行有效的拦截,但事件截获的位置不同。

键盘中的键分为字符(可打印)键和功能键(不可打印),系统功能键包括如下:

Esc、Tab、Caps Lock、Shift、Ctrl、Alt、Enter、Backspace、Print Screen、Scroll Lock、Pause Break、Insert、Delete、Home、End、Page Up、Page Down, F1through F12,Num Lock、The Arrow Keys。

keypress响应系统功能键总结:

Firefox:支持 Esc、Enter、Backspace、Pause Break、Insert、Delete、Home、End、Page Up、Page Down、F1 throughF12、The Arrow Keys

Chrome:支持Enter

Oprea:支持Enter

Safari:支持Enter

IE:支持Esc、Enter

ps:

firefox:上下左右键会触发kepress.

chrome: 上下左右键不会触发kepress.

oprea:上下左右键不会触发kepress.

safari:上下左右键不会触发kepress.

IE:上下左右键不会触发kepress.

=====================================================================

keyCode(键码), which, charCode(字符编码)

keydown: 获得keyCode, charCode=0

keypress: 字符(英文区分大小写+数字  / *, .  ...等非功能键),keyCode=0 ,获取charCode值,反之获取keyCode, charCode=0

keyup: 获得keyCode, charCode=0

jQuery 中 event.which =original.charCode != null ? original.charCode : original.keyCode;

总结:回车、上下左右、等功能键keydown、keypress、keyup都获取keyCode,并且值相等。

 

开启大写情况,keydown、keypress(字母,主键盘数字、回车)、keyup,which值相等,小写kepress获取的which不同于keypress、keyup。

keypress事件的keyCode对字母的大小写敏感,而keydown、keyup事件不敏感

keypress事件的which值无法区分主键盘上的数字键和附键盘数字键的,而keydown、keyup的which值对主附键盘的数字键敏感。

IE(ie9以下)只有一个属性KeyCode属性,当为keydown和keyup 事件是,keycode属性表示你具体按下的键(也称为virtualkeycode),当捕捉的是keypress事件时keyCode属性指的是你键入的字符(character code)   

 

标准浏览器中情况有些不同,event对象包含一个keyCode属性和一个charCode属性,keydown和keyup事件的时候,keyCode表示的就是你具体按的键,charCode为0;当捕捉的是keypress事件时,keyCode为0,charCode指的是你按下的字符,鉴于IE和FF中的区别,如果你比较懒的话,建议只使用keydow和keyup事件

 应该是jq版本的原因,可以响应的。

1 回复 有任何疑惑可以回复我~
#1

qq_无垢的季节_03545899 提问者

真多!!不过,非常感谢,很有帮助。
2017-01-13 回复 有任何疑惑可以回复我~

我也不知道

0 回复 有任何疑惑可以回复我~

f5 是刷新 你能响应吗 我都响应不了

0 回复 有任何疑惑可以回复我~
#1

qq_无垢的季节_03545899 提问者

按f5,之前显示内容消失了,重新按普通键内容又显示回来.这算不算响应
2017-01-06 回复 有任何疑惑可以回复我~
#2

qq_无垢的季节_03545899 提问者

我用的是火狐浏览器
2017-01-06 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

区别有疑惑

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信