鼠标有mousedown,mouseup之类的事件,这是根据人的手势动做分解的2个触发行为。相对应的键盘也有这类事件,将用户行为分解成2个动做,键盘按下与松手,针对这样的2种动做,jQuery分别提供了对应keydown与keyup方法来监听浏览器
keydown事件:spa
当用户在一个元素上第一次按下键盘上字母键的时候,就会触发它。使用上很是简单,与基本事件参数处理保持一致,这里使用不在重复了,列出使用的方法code
//直接绑定事件 $elem.keydown( handler(eventObject) ) //传递参数 $elem.keydown( [eventData ], handler(eventObject) ) //手动触发已绑定的事件 $elem.keydown()
keyup事件:事件
当用户在一个元素上第一次松手键盘上的键的时候,就会触发它。使用方法与keydown是一致的只是触发的条件是方法的input
注意:event
在input元素上绑定keydown事件会发现一个问题:class
每次获取的内容都是以前输入的,当前输入的获取不到
keydown事件触发在文字还没敲进文本框,这时若是在keydown事件中输出文本框中的文本,获得的是触发键盘事件前的文本,而keyup事件触发时整个键盘事件的操做已经完成,得到的是触发键盘事件后的文本sed
当浏览器捕获键盘输入时,还提供了一个keypress的响应,这个跟keydown是很是类似,这里使用请参考keydown这一节,具体说说不一样点表单
keypress事件与keydown和keyup的主要区别方法
总而言之,
KeyPress主要用来接收字母、数字等ANSI字符,而 KeyDown 和 KeyUP 事件过程能够处理任何不被 KeyPress 识别的击键。诸如:功能键(F1-F12)、编辑键、定位键以及任何这些键和键盘换档键的组合等。