很多时候,我们需要获取用户的键盘事件,下面就一起来看看jquery是如何操作键盘事件的。
一、首先需要知道的是:
1、keydown()
keydown事件会在键盘按下时触发.
2、keyup()
keyup事件会在按键释放时触发,也就是你按下键盘起来后的事件
3、keypress()
keypress事件会在敲击按键时触发,我们可以理解为按下并抬起同一个按键
二、获得键盘上对应的ascII码:
1
2
3
|
$(document).keydown( function (event){
console.log(event.keyCode);
});
|
$tips: 上面例子中,event.keyCode就可以帮助我们获取到我们按下了键盘上的什么按键,他返回的是ascII码,比如说上下左右键,分别是38,40,37,39;
三、实例(当按下键盘上的左右方面键时)
1
2
3
4
5
6
7
8
9
10
11
12
13
|
$(document).keydown( function (event){
//判断当event.keyCode 为37时(即左方面键),执行函数to_left();
//判断当event.keyCode 为39时(即右方面键),执行函数to_right();
if (event.keyCode == 37){
//do something;
} else if (event.keyCode == 39){
//do something;
}
});
|
实例研究:
比如:小说网站中常见的按左右键来实现上一篇文章和下一篇文章;按ctrl+回车实现表单提交;google reader和有道阅读中的全快捷键操作...(以此提高用户体验)
① 实现ctrl+Enter就是ctrl+回车提交表单:
1
2
3
4
5
6
7
|
$(document).keypress( function (event) {
if (event.ctrlKey && event.which == 13)
$( "form:first" ).trigger( "submit" );
})
|
② 监测ctrl按键:
1
2
3
4
5
6
7
8
9
|
$(document).keydown( function (event){
//(ctrlKey和metaKey等效:都是监测)按下ctrl返回turn,按下非ctrl键返回false;
console.log(event.ctrlKey);
//console.log(event.metaKey);
})
|
③ 键盘系列操作
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
$(document).keydown( function (event){
var e = event || window.event; //作用???
var k = e.keyCode || e.which; //获取按键的acdII 码
switch (k) {
case 37:
//…
break ;
case 39:
//…
break ;
}
return false ;
})
|
1
2
3
4
5
6
7
8
9
10
11
|
//另外发现一个应用的方法:当页面转载完成的时候,第一个表单元素获得焦点,以便输入
$( "input[type=text]:first" ).trigger( "focus" );
//当表单没获得焦点,但用户却按下键盘的时候,自动为用户定位焦点到输入框上
$(document).keydown( function (){
$( "input[type=text]:first" ).trigger( "focus" );
})
|
以上是列出了jquery键盘事件的常用方法,很多时候应该也够用了。
时间: 2024-10-08 19:50:02