深入理解JQuery keyUp和keyDown的区别


Posted in Javascript onDecember 12, 2013

定义和用法
完整的 key press 过程分为两个部分:1. 按键被按下;2. 按键被松开。

当按钮被按下时,发生 keydown 事件。

keydown() 方法触发 keydown 事件,或规定当发生 keydown 事件时运行的函数。

<html>
<head>
<script type="text/javascript" src="/jquery/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $("input").keydown(function(){
    $("input").css("background-color","#FFFFCC");
  });
  $("input").keyup(function(){
    $("input").css("background-color","#D6D6FF");
  });
});
</script>
</head>
<body>
Enter your name: <input type="text" />
<p>当发生 keydown 和 keyup 事件时,输入域会改变颜色。请试着在其中输入内容。</p>
</body>
</html>

众所周知,jquery封装了很多事件交互方法,这里讲到的问题在原生js中也是有的。

keyup是在用户将按键抬起的时候才会触发的,属于整个按键过程中的最后阶段,所以有其特定的用处,就是在左侧输入,右侧同步显示的过程中很有用处。典型的例子就是邮件编辑预览的应用。

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>无标题页</title>
    <script src="JS/jquery-1.4.2.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(function() {
            $('#t1').live('keyup', function() {
                $('#v1').text($(this).val());
            });
            $('#t2').live('keydown', function() {
                $('#v2').text($(this).val());
            });
            $('#t3').live('keypress', function() {
                $('#v3').text($(this).val());
            });
        });    
    </script>
</head>
<body>
    <textarea id="t1"></textarea>
    <div id="v1">
    </div>
    <textarea id="t2"></textarea>
    <div id="v2">
    </div>
    <textarea id="t3"></textarea>
    <div id="v3">
    </div>
</body>
</html>

这里分别应用了三种事件,其中t1能够完整的同步到v1中,而keypress和keydown总是少最后一个字符,这样就说明了这三种事件触发的小小区别,keydown是在按下时触发,不能得到最后的输入结果,keypress也是一样。

例如:keydown绑定文本框,每次点击触发事件,在获取文本框的值,总是打印上次操作时文本框的内容,

这是因为keydown操作后,事件触发了,但值还未显示在文本框中,所以这类操作要用keyup 一个完整的按键动作后,才可以获取文本框的值。

keydown与keypress更适用于通过键盘控制页面类功能的实现。

获取键盘点击的键位:

<html>
<head>
<script type="text/javascript" src="/jquery/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $("input").keydown(function(event){ 
    $("div").html("Key: " + event.which);
  });
});
</script>
</head>
<body>
请随意键入一些字符:<input type="text" />
<p>当您在上面的框中键入文本时,下面的 div 会显示键位序号。</p>
<div />
</body>
</html>
Javascript 相关文章推荐
innerHTML,outerHTML,innerTEXT三者之间的区别
Jan 28 Javascript
7个Javascript地图脚本整理
Oct 20 Javascript
Jquery Ajax学习实例4 向WebService发出请求,返回实体对象的异步调用
Mar 16 Javascript
Document对象内容集合(比较全)
Sep 06 Javascript
JS继承用法实例分析
Feb 05 Javascript
JS动态改变表格边框宽度的方法
Mar 31 Javascript
Node.js中路径处理模块path详解
Nov 14 Javascript
JS实现页面中所有img对象添加onclick事件及新窗口查看图片的方法
Dec 27 Javascript
详解Angular Karma测试的持续集成实践
Nov 15 Javascript
node crawler如何添加promise支持
Feb 01 Javascript
在vue中使用防抖函数组件操作
Jul 26 Javascript
微信小程序实现modal弹出框遮罩层组件(可带文本框)
Dec 20 Javascript
ff下JQuery无法监听input的keyup事件的解决方法
Dec 12 #Javascript
Jquery each方法跳出循环,并获取返回值(实例讲解)
Dec 12 #Javascript
解析prototype,JQuery中跳出each循环的方法
Dec 12 #Javascript
如何从jQuery的ajax请求中删除X-Requested-With
Dec 11 #Javascript
jQuery动态显示和隐藏datagrid中的某一列的方法
Dec 11 #Javascript
js中对象的声明方式以及数组的一些用法示例
Dec 11 #Javascript
httpclient模拟登陆具体实现(使用js设置cookie)
Dec 11 #Javascript
You might like
默默简单的写了一个模板引擎
2007/01/02 PHP
PHP 上传文件的方法(类)
2009/07/30 PHP
PHP实现批量上传单个文件
2015/12/29 PHP
JavaScript与C# Windows应用程序交互方法
2007/06/29 Javascript
用于判断用户注册时,密码强度的JS代码
2009/01/01 Javascript
支持ie与FireFox的剪切板操作代码
2009/09/28 Javascript
javascript (用setTimeout而非setInterval)
2011/12/28 Javascript
js事件绑定快捷键以ctrl+k为例
2014/09/30 Javascript
JS点击链接后慢慢展开隐藏着图片的方法
2015/02/17 Javascript
js基于面向对象实现网页TAB选项卡菜单效果代码
2015/09/09 Javascript
js实现select二级联动下拉菜单
2020/04/17 Javascript
jQuery实现的鼠标经过时变宽的效果(附demo源码)
2016/04/28 Javascript
jQuery基于Ajax方式提交表单功能示例
2017/02/10 Javascript
详解AngularJS ui-sref的简单使用
2017/04/24 Javascript
vue之数据交互实例代码
2017/06/16 Javascript
angular中实现li或者某个元素点击变色的两种方法
2017/07/27 Javascript
解析vue中的$mount
2017/12/21 Javascript
JavaScript变量声明var,let.const及区别浅析
2018/04/23 Javascript
通过微信公众平台获取公众号文章的方法示例
2019/12/25 Javascript
[01:29:31]VP VS VG Supermajor小组赛胜者组第二轮 BO3第一场 6.2
2018/06/03 DOTA
Python中.py文件打包成exe可执行文件详解
2017/03/22 Python
python实现关键词提取的示例讲解
2018/04/28 Python
Python图像处理之图像的缩放、旋转与翻转实现方法示例
2019/01/04 Python
Python多线程threading模块用法实例分析
2019/05/22 Python
Python 3.6 -win64环境安装PIL模块的教程
2019/06/20 Python
Python实现最大子序和的方法示例
2019/07/05 Python
python多进程(加入进程池)操作常见案例
2019/10/21 Python
HTML5 Canvas中绘制矩形实例
2015/01/01 HTML / CSS
phonegap常用事件总结(必看篇)
2017/03/31 HTML / CSS
Bogner美国官网:滑雪服中的”Dior”
2018/01/30 全球购物
乌克兰时尚鞋子和衣服购物网站:Born2be
2018/05/24 全球购物
英国自行车商店:AW Cycles
2021/02/24 全球购物
远程学习的教学用品和家庭学习资源:Really Good Stuff
2020/04/27 全球购物
生产车间主任的个人自我鉴定
2013/10/25 职场文书
优秀大学生推荐信范文
2013/11/28 职场文书
撤诉状格式范本
2015/05/19 职场文书