我希望能夠在shift鍵被釋放時運行一個函數。如何檢測換檔是否已經釋放?
我知道變速鍵可與類似地檢測:
$(window).bind("keydown keyup", function(ev) { ... });
它工作得很好,用於檢測按鍵的組合(例如shift+a
)。問題是,如果你想檢測到shift鍵本身,這觸發與ev.shiftKey=false
,ev.which=16
和keyup
與ev.shiftKey=true
,ev.which=16
。我嘗試在keyup
上附加一個事件到這個組合上,但是當這兩個按鍵被按下時,這種方式會以非常微妙的方式失敗:對於第二個shift鍵,您同時獲得keyup/keydown
和true,16
,然後當和true,16
第一個換檔鍵被釋放。
有沒有乾淨的方法來做到這一點?或者我應該忽略這兩個移位鍵的情況?
是的,處理這個問題的一個顯而易見的方法就是在換檔失敗時遞增一個變量,並在換檔時遞減。除非該變量等於零,否則可以認爲按下了換檔。這就是說,即使這不是一個非常困難的解決方案,我也沒有任何理由爲什麼有人會同時按這兩個。 – brymck