鍵盤事件(jQuery)

1jQuery鍵盤事件之keydown()與keyup()事件

鼠標有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

  • keydown是在鍵盤按下就會觸發
  • keyup是在鍵盤松手就會觸發
  • 理論上它能夠綁定到任何元素,但keydown/keyup事件只是發送到具備焦點的元素上,不一樣的瀏覽器中,可得到焦點的元素略有不一樣,可是表單元素老是能獲取焦點,因此對於此事件類型表單元素是最合適的。

2jQuery鍵盤事件之keypress()事件

在input元素上綁定keydown事件會發現一個問題:class

每次獲取的內容都是以前輸入的,當前輸入的獲取不到

keydown事件觸發在文字還沒敲進文本框,這時若是在keydown事件中輸出文本框中的文本,獲得的是觸發鍵盤事件前的文本,而keyup事件觸發時整個鍵盤事件的操做已經完成,得到的是觸發鍵盤事件後的文本sed

當瀏覽器捕獲鍵盤輸入時,還提供了一個keypress的響應,這個跟keydown是很是類似,這裏使用請參考keydown這一節,具體說說不一樣點表單

keypress事件與keydown和keyup的主要區別方法

  • 只能捕獲單個字符,不能捕獲組合鍵
  • 沒法響應系統功能鍵(如delete,backspace)
  • 不區分小鍵盤和主鍵盤的數字字符

總而言之,

KeyPress主要用來接收字母、數字等ANSI字符,而 KeyDown 和 KeyUP 事件過程能夠處理任何不被 KeyPress 識別的擊鍵。諸如:功能鍵(F1-F12)、編輯鍵、定位鍵以及任何這些鍵和鍵盤換檔鍵的組合等。

相關文章
相關標籤/搜索