鼠標有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)、編輯鍵、定位鍵以及任何這些鍵和鍵盤換檔鍵的組合等。