一.keypress,keydown,keyup的区别:
- 1.keydown:在键盘上按下某键时发生,一直按着则会不断触发(opera浏览器除外), 它返回的是键盘代码;
- 2.keypress:在键盘上按下一个按键,并产生一个字符时发生, 返回ASCII码。注意: shift、alt、ctrl等键按下并不会产生字符,所以监听无效 ,换句话说, 只有按下能在屏幕上输出字符的按键时keypress事件才会触发。若一直按着某按键则会不断触发。
- 3.keyup:用户松开某一个按键时触发, 与keydown相对, 返回键盘代码.
二.两种常用用法举例
案例1:获取按键代码或字符的ASCII码
$(window).keydown(function(event){
// 通过event.which可以拿到按键代码. 如果是keypress事件中,则拿到ASCII码.
});
案例2:传递数据给事件处理函数
语法:
jQueryObject.keypress([[ data ,] handler ]);
- data: 通过event.data传递给事件处理函数的任意数据;
- handler: 指定的事件处理函数;
举例:
// 只允许按下的字母键生效, 65~90是所有大写字母的键盘代码范围.
var validKeys ={ start:65,end:90 };
$("#keys").keypress( validKeys,function(event){
var keys =event.data; //拿到validKeys对象.
returnevent.which >= keys.start &&event.which <= keys.end;
});