我想在释放shift键时能够运行一个函数。
我知道可以通过以下方式检测到Shift键:
$(window).bind("keydown keyup", function(ev) { ... });
它非常适合检测组合键(例如shift+a
)。问题是,如果您想要检测shift键本身,则会触发keydown
ev.shiftKey=false
,ev.which=16
和keyup
ev.shiftKey=true
,{{1} }}。我试图在ev.which=16
上将事件附加到此组合,但是当按下两个shift键时,这会以非常微妙的方式失败:对于第二个shift键,keyup
和{{1}然后,当第一个shift键被释放时,你会得到另一个keyup/keydown
true,16
。
有没有干净的方法呢?或者我应该忽略两个移位键情况?
答案 0 :(得分:1)
有人同时按下两个SHIFT键是不可能的,除非他们故意试图破坏你的应用程序。您无法设计(读取:浪费时间)编码边缘情况,在这种情况下,99%的用户永远不会按两个键。
确定按键的逻辑是合理的。设置变量并根据按下增加/减少它,如果它等于0,则它们没有任何按下。 Presto bammo。
编辑:或者只是按照Brian在评论中所说的那样做! :)