问答详情
源自:4-1 jQuery键盘事件之keydown()与keyup()事件

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

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

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

提问者:乱不乱步 2017-04-20 14:17

个回答

  • 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这个事件的属性应当是按下键盘后才会触发,一般键盘是先判定按键了在传递字符,难道你的键盘可以先将字符传出去再判定你是按了这个键?

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

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