• keyDown keyPress keyUp 事件的区别


    keyDown keyPress keyUp  事件的区别

    一 触发顺序

    显而易见,事件发生的顺序是: keydown --> keypress --> keyup
    当按住一个键一段时间后再放开时,结果为:
    keydown
    keypress
    keydown
    keypress
    keydown
    keypress
    keydown
    keypress
    ...
    keyup
    n个keydown和n个keypress,1个keyup,系统设置的时间间隔.
     
     
    二 具体区别

    KeyPress主要用来接收字母、数字等ANSI字符,
    而 KeyDown 和 KeyUP 事件过程可以处理任何
    不被 KeyPress 识别的击键,诸如:功能键(
    F1-F12)、编辑键、定位键以及任何这些键
    和键盘换档键的组合等。与 KeyDown 和
    KeyUp 事件不同的是,KeyPress 不显示
    键盘的物理状态(SHIFT键),而只是传
    递一个字符。KeyPress 将每个字符的大、
    小写形式作为不同的键代码解释,即作为两种
    不同的字符。而 KeyDown 和 KeyUp 用两种
    参数解释每个字符的大写形式和小写形式:
    keycode — 显示物理的键(将 A 和 a 作为
    同一个键返回)和 shift —指示 shift + key
    键的状态而且返回 A 或 a 其中之一。
    KeyDown、KeyUp事件是当按下 ( KeyDown )
    或松开 ( KeyUp ) 一个键时发生的。
    由于一般按下键盘的键往往会立即放开
    (这和鼠标不同),所以这两个事件使用哪个差别不大。

    keydown 从表现上来看是按下任意键,
    按的字符,如果是文本框的话还没有
    显示到文本框之前就产生的事件。

    keyup 就是在松开按键时发生,
    此时字符已经输入到文本框

    keypress 整个按键动作完成之后,只响
    应字符,对ctrl,alt等等这些控制键没有响应。


    虽然从字面理解, KeyDown是按下一个键的意思,
    但实际上二者的根本区别是, 系统由KeyDown
    返回键盘的代码, 然后由TranslateMessage函数
    翻译成成字符, 由KeyPress返回字符值.
    因此在KeyDown中返回的是键盘的代码,
    而KeyPress返回的是ASCII字符. 所以根据你
    的目的, 如果只想读取字符, 用KeyPress,
    如果想读各键的状态, 用KeyDown.
    说KeyDown是按下, KeyPress是按下并松开,
    是不对的.
     如果你一直按着键呢? 这时不断地
    产生KeyDown和KeyPress.

    KeyDown、KeyUp 事件
    这些事件是当一个对象具有焦点时按下 ( KeyDown )
    或松开 ( KeyUp ) 一个键时发生的。
    (要解释 ANSI 字符,应使用 KeyPress 事件。)
    KeyPress 事件
    此事件当用户按下和松开一个 ANSI 键时发生。
    具有焦点的对象接收该事件。一个窗体仅在它
    没有可视和有效的控件或 KeyPreview 属性被设置为
    True 时才能接收该事件。一个 KeyPress 事件可以
    引用任何可打印的键盘字符,一个来自标准字母
    表的字符或少数几个特殊字符之一的字符与 CTRL
    键的组合,以及 ENTER 或 BACKSPACE 键。
    KeyPress 事件过程在截取 TextBox 或
    ComboBox 控件所输入的击键时是非常有用的。
    它可立即测试击键的有效性或在字符输入时对
    其进行格式处理。改变 keyascii
    参数的值会改变所显示的字符

  • 相关阅读:
    css3:让IE兼容background-size的方法
    判断浏览器版本是否是ie9以下浏览器,提示升级
    正则表达式
    H5页面内容较少时如何让页面全屏在手机显示呢
    页面滚动指定高度时添加样式或动画
    使用js实现导航切换效果变化(收集案例)
    单行文字定时滚动(收集案例)
    使用zepto.js完成的手机相册
    Repaint 、Reflow 的基本认识和优化
    Web-[强网杯 2019]随便注
  • 原文地址:https://www.cnblogs.com/xs-yqz/p/4433286.html
Copyright © 2020-2023  润新知