如何检测换档是否已经释放?

时间:2011-06-29 10:29:19

标签: javascript jquery

我想在释放shift键时能够运行一个函数。

我知道可以通过以下方式检测到Shift键:

$(window).bind("keydown keyup", function(ev) { ... });

它非常适合检测组合键(例如shift+a)。问题是,如果您想要检测shift键本身,则会触发keydown ev.shiftKey=falseev.which=16keyup ev.shiftKey=true,{{1} }}。我试图在ev.which=16上将事件附加到此组合,但是当按下两个shift键时,这会以非常微妙的方式失败:对于第二个shift键,keyup和{{1}然后,当第一个shift键被释放时,你会得到另一个keyup/keydown true,16

有没有干净的方法呢?或者我应该忽略两个移位键情况?

1 个答案:

答案 0 :(得分:1)

有人同时按下两个SHIFT键是不可能的,除非他们故意试图破坏你的应用程序。您无法设计(读取浪费时间)编码边缘情况,在这种情况下,99%的用户永远不会按两个键。

确定按键的逻辑是合理的。设置变量并根据按下增加/减少它,如果它等于0,则它们没有任何按下。 Presto bammo。

编辑:或者只是按照Brian在评论中所说的那样做! :)