zoukankan      html  css  js  c++  java
  • jquery键盘事件 windrainpy


    一、首先需要知道的是:

    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");

    })

    更详尽的关于事件的总结和表述:http://hgangok.blog.163.com/blog/static/283527002007102443635514/

    w3school上的jQuery 事件参考手册

    学习过程中,应该多思考怎样改善交互性和用户体验。

  • 相关阅读:
    操作系统进程调度策略
    runnable & callable
    leetcode 124 二叉树中的最大路径和
    leetcode 24 两两交换链表中的节点
    leetcode 93 复原IP地址
    C++ 11 move
    leetcode 64 最小路径和
    leetcode 1143 最长公共子序列
    leetcode 528 按权重随机选择
    数据挖掘面试题(1)
  • 原文地址:https://www.cnblogs.com/windrainpy/p/2231359.html
Copyright © 2011-2022 走看看