很多时候,我们需要获取用户的键盘事件,下面就一起来看看jquery是如何操作键盘事件的。

一、首先需要知道的是:

1、keydown()

keydown事件会在键盘按下时触发.

2、keyup()

keyup事件会在按键释放时触发,也就是你按下键盘起来后的事件

3、keypress()

keypress事件会在敲击按键时触发,我们可以理解为按下并抬起同一个按键

二、获得键盘上对应的ascII码:

$(document).keydown(function(event){
console.log(event.keyCode);
});

$tips: 上面例子中,event.keyCode就可以帮助我们获取到我们按下了键盘上的什么按键,他返回的是ascII码,比如说上下左右键,分别是38,40,37,39;

三、实例(当按下键盘上的左右方面键时)

$(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+回车提交表单:

$(document).keypress(function(event) {

      if (event.ctrlKey && event.which == 13)

     $("form:first").trigger("submit");

 })

② 监测ctrl按键:

$(document).keydown(function(event){

       //(ctrlKey和metaKey等效:都是监测)按下ctrl返回turn,按下非ctrl键返回false;

       console.log(event.ctrlKey);

       //console.log(event.metaKey);         

})

③ 键盘系列操作

$(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;

})
 
//另外发现一个应用的方法:当页面转载完成的时候,第一个表单元素获得焦点,以便输入

$("input[type=text]:first").trigger("focus");    

//当表单没获得焦点,但用户却按下键盘的时候,自动为用户定位焦点到输入框上

$(document).keydown(function(){

       $("input[type=text]:first").trigger("focus");

})

以上是列出了jquery键盘事件的常用方法,很多时候应该也够用了。

最新文章

  1. PHP中include()与require()的区别说明
  2. java基本算法之快速排序
  3. 利用canvas实现抽奖转盘---转载别人的
  4. lr常用
  5. java程序员从笨鸟到菜鸟之(七)一—java数据库操作
  6. mysql函数计算地表两点间距离
  7. (转载)OC学习篇之---Foundation框架中的NSObject对象
  8. [swustoj 1094] 中位数
  9. multiselect获取选中的多个下拉项的值(逗号分割的字符串)
  10. Spring 定时任务 quartz的配置
  11. linux下配置固定ip
  12. drop表,然后创建表,插入数据,并创建索引等内容。
  13. Delphi与Vista提供的UAC控制(1-代表资源编号,24-资源类型为RTMAINIFEST,最后用brcc32编译成资源文件)
  14. 【NOIP2006提高组】能量项链
  15. ReactiveSwift源码解析(四) Signal中的静态属性静态方法以及面向协议扩展
  16. List使用linq的OrderBy方法排序,并按照两个字段排序的写法
  17. Hbase思维导图之架构
  18. hdu 1254 推箱子(双重bfs)
  19. Python中编码问题:u'\xe6\x97\xa0\xe5\x90\x8d' 类型和 ‘\u559c\u6b22\u4e00\u4e2a\u4eba ’ 转为utf-8的解决办法
  20. [MySQL] 变量(参数)的查看和设置 [转]

热门文章

  1. EJB 总结学习(1)
  2. phonegap与google analytics整合
  3. yum puppet 并整合控制台
  4. python-面向对象(四)——类成员的访问方式汇总
  5. UDP 校检和和算法
  6. 前后端分离--mock
  7. android js 互调
  8. Python实战:美女图片下载器,海量图片任你下载
  9. proguard.cfg 配置文件
  10. Bootstrap 样式定制-lessc编译源码