为何在keydown事件中,按下字母键盘,输出显示会慢一拍,而按下数字键盘就会同步显示?

来源:4-1 jQuery键盘事件之keydown()与keyup()事件

乱不乱步

2017-04-20 14:17

为何在keydown事件中,按下字母键盘,输出显示会慢一拍,而按下数字键盘就会同步显示?

我知道每次按下键盘的时候应该是读取文本框的内容,因为这个时候文本还未键入,所以读取的文本内容应该是按下键盘之前的文本,但是我按下数字键盘就直接读取了数字键入之后的内容?

写回答 关注

5回答

  • Pruett
    2018-06-02 11:09:59

    我的感觉是按键松开的时候才能将字符写在目标中,比如input,所以在按下的时候执行了keydown,获取text并不能获取当前的按键对应的值

  • yelllowsky
    2017-07-04 11:25:18

    我的也是,应该是keydown是要按下触发事件,你第一次的时候val值是空的,按第二个的时候才出现第一次的值;

    keyup是按下val有值1,松开显示

  • 慕粉1554206971
    2017-04-21 08:18:00

    我的想法是,普通键盘按下"1"键,是按照"按下键"+"数字1"的顺序发出信号给主机,你那键盘则是以"数字1"+"按下键"的顺序发信号给主机。这就导致你的键盘数字区部分无法判断keydown和keyup事件的区别,因为数字字符总是在键盘按键判定前传输出去。

  • 慕粉1554206971
    2017-04-20 16:52:48

    按照keydown这个事件的属性应当是按下键盘后才会触发,一般键盘是先判定按键了在传递字符,难道你的键盘可以先将字符传出去再判定你是按了这个键?

    乱不乱步

    我猜想会不会是数组键盘是组合出来的,比如我按下了‘1’,其实是组合按键“1 + 按键*”?

    2017-04-20 17:06:41

    共 1 条回复 >

  • 慕粉1554206971
    2017-04-20 16:26:32

    我用数字键盘输入时没有这个情况啊,你确定不是错输到keyup栏里了?或者是因为输入数字是一样的?不管怎么试单就keydown事件没法同步显示啊

    乱不乱步

    我的是mac键盘,上面的一排数字键盘确实按下下面就同步输出了,我猜想会不会是数组键盘是组合出来的?

    2017-04-20 16:46:03

    共 1 条回复 >

jQuery基础(三)—事件篇

jQuery第三阶段开启事件修炼,掌握对页面进行交互的操作

89997 学习 · 625 问题

查看课程

相似问题