• 键盘事件之keydown keypress keyup区别


    经过测试,显然事件执行的顺序是: keydown->keypress->keyup.

    但是连续按一个按键的话,会一直触发:keydown keypress。直到你提起按键,会触发keyup。

    但是对一些特殊的键子,各个事件在浏览器里能触发的事件并不一样。

    有几点需要注意:

    1.像keypress对: shift ctrl 上下键等非字符的输入不会触发。

    2.在enter键遇到form表单的时候,当只有一个文本框里并且输入ENTER的时候,form表单会自动提交,这时候只会触发keydown,keypress两个事件。

    3.当监听keydown事件,enter键遇到form表单并且target='_blank'的时候有些浏览器会拦截页面,原因是:

      因为keydown在按下回车的时候已经触发,但这时程序还在处理逻辑,在处理完提交的时候,浏览器会认为是程序打开的新页面,不认为是用户行为打开的,导致浏览器拦截新页面的打开,解决办法是:把监听keydown换成监听keypress。

    总结:

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

    keypress 就是在松开按键时发生,此时字符已经输入到文本框。要按下并松开并有输入性字符的按键才会触发。

       

  • 相关阅读:
    20210123
    20210122
    20210121
    20210120
    2020119
    20210118
    20210117
    20210116
    例2-8
    例2-6
  • 原文地址:https://www.cnblogs.com/freefish12/p/5396062.html
Copyright © 2020-2023  润新知