• 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");
     
    })
  • 相关阅读:
    存储过程之六—触发器
    存储过程之五—条件和异常处理
    存储过程之四—游标
    json的那些事
    聊聊js中的typeof
    JavaScript各种继承方式和优缺点
    两边宽度已知,如何让中间自适应
    html5笔记——<section> 标签
    vue实现仿淘宝结账页面
    vue2.0在table中实现全选和反选
  • 原文地址:https://www.cnblogs.com/xiaoer-heidou/p/5106414.html
Copyright © 2020-2023  润新知