js中onkeydown onkeypress 和onkeyup的区分

在检察js event时看到这三个事宜,顺手Google了一下,和本身之前明白的有些相差,记录下来以轻易后期须要时查询。

一、msdn上关于三者的申明

  • onkeydown

这个事宜在用户按下任何键盘键(包含体系按钮,如箭头键和功能键)时发作。

  • onkeypress

这个事宜在用户按下并摊开任何字母数字键时发作。体系按钮(比方,箭头键和功能键)没法获得辨认。

  • onkeyup

这个事宜在用户摊开任何先前按下的键盘键时发作.

二、区分

  • 关于实行递次

测试发明onkeydown 事宜最早实行,其次是onkeypress,末了是onkeyuponkeydownonkeypress会影响onkeyup的实行。三个事宜同事在的话,都是alert的话,只会弹出2个alertup事宜的alert不会弹出。

  • 关于事宜相应

onkeydownonkeypress事宜相应的时刻输入的字符并没有被体系接收,而相应onkeyup的时刻,输入流已被体系接收。

onkeydown 触发的时刻输入流正要进入体系,也就是说onkeydown 事宜一完,输入流就进入了体系,没法转变。所以经由过程onkeydown 事宜能够转变用户是按了哪一个键;而onkeypress事宜则是在输入流进入体系后触发的,但输入流暂未被体系处置惩罚,此时已不能转变输入流了;onkeyup则是输入流被体系处置惩罚后发作的。

参考

1、js中onkeyup、onkeydown与onkeypress的区分
2、HTML DOM Event 对象

    原文作者:jack2wang
    原文地址: https://segmentfault.com/a/1190000005761969
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞