每天给大家分享一点jQuery,同时也不断充实自己

jQuery资源宝库

深入了解jquery键盘事件

很多时候,我们需要获取用户的键盘事件,下面就一起来看看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键盘事件的常用方法,很多时候应该也够用了。

Posted by jQuery小子 @ 2011-11-9 10:53:25 阅读(658) 评论(0)
上一篇:jquery 3d文字插件介绍
下一篇:用jquery实现ajax跨域请求

我也来参与讨论

你还可以输入600/600个字符 发表评论
称呼: (必填) 登录 | 开通博客
邮箱: (选填) 你的邮箱地址不会被公开
网站: (选填)
验证码: (必填)
看不清换一张 看不清楚换一张