1
有沒有辦法在keydown上調用某個函數,但只有在密鑰被釋放後才能獲得某個元素的值?基本上我的代碼中的所有其他函數都需要在keydown上調用,除了在key被釋放後需要輸入字段的值。所以爲了簡單起見,我希望能夠在switch語句中調用這個函數,然後等待keyup事件被觸發。jQuery:在keydown上調用函數但在keyup上獲得值
有沒有辦法在keydown上調用某個函數,但只有在密鑰被釋放後才能獲得某個元素的值?基本上我的代碼中的所有其他函數都需要在keydown上調用,除了在key被釋放後需要輸入字段的值。所以爲了簡單起見,我希望能夠在switch語句中調用這個函數,然後等待keyup事件被觸發。jQuery:在keydown上調用函數但在keyup上獲得值
您不能等待事件,因爲事件處理程序僅在其他代碼未運行時才啓動,因此您必須將該密鑰的信息存儲在某個地方並在keyup
事件中使用它。
注意,每個最終得到了keyup
,但不一定以相同的順序,如:
shift down
space down
shift up
K down
space up
K up
所以,如果你從keydown事件保留信息,你就必須分開存放每個鍵。
還可以考慮使用按鍵生成字符時發生的keypress
事件,這種情況在按住鍵時正在重複時也會發生。
我想,你將不得不綁定一個keyup和一個keydown處理程序到同一個dom元素。 – scessor
我想我可能不得不這樣做,雖然我希望我不會這樣,因爲看起來好像我不得不重複我的代碼來檢查我是否應該做某件事。我想我會現在這樣做,然後改變它,如果有人發佈更好的解決方案。 – blcArmadillo