2011-08-03 47 views
1

有沒有辦法在keydown上調用某個函數,但只有在密鑰被釋放後才能獲得某個元素的值?基本上我的代碼中的所有其他函數都需要在keydown上調用,除了在key被釋放後需要輸入字段的值。所以爲了簡單起見,我希望能夠在switch語句中調用這個函數,然後等待keyup事件被觸發。jQuery:在keydown上調用函數但在keyup上獲得值

+1

我想,你將不得不綁定一個keyup和一個keydown處理程序到同一個dom元素。 – scessor

+0

我想我可能不得不這樣做,雖然我希望我不會這樣,因爲看起來好像我不得不重複我的代碼來檢查我是否應該做某件事。我想我會現在這樣做,然後改變它,如果有人發佈更好的解決方案。 – blcArmadillo

回答

1

您不能等待事件,因爲事件處理程序僅在其他代碼未運行時才啓動,因此您必須將該密鑰的信息存儲在某個地方並在keyup事件中使用它。

注意,每個​​最終得到了keyup,但不一定以相同的順序,如:

shift down 
space down 
shift up 
K down 
space up 
K up 

所以,如果你從keydown事件保留信息,你就必須分開存放每個鍵。

還可以考慮使用按鍵生成字符時發生的keypress事件,這種情況在按住鍵時正在重複時也會發生。