如何检测jQuery中发布的所有密钥?

时间:2014-04-16 21:02:57

标签: jquery keydown keyup keyrelease

我在同一个对象上同时使用.keydown()和.keyup()事件处理程序,jquery会在键盘释放键时触发.keyup()。我想阻止jquery触发.keyup()事件,直到所有键都被释放(不仅仅是一个),因为我正在使用多按键功能...任何想法?

1 个答案:

答案 0 :(得分:2)

存储keydown事件的计数以及keyup事件的计数。对于每次迭代,您需要从keydown计数中减去keyup计数。当计数达到0时,您将获得与keydowns一样多的键盘,然后您可以运行您的功能。

编辑:这是完美的FAR,但演示了概念http://jsfiddle.net/K2ny2/1/

function testKeys(u, d) {
    var delta = u - d;
    console.log(delta);
    if(0 == delta) {
        $('#result').show();
    }
}

您可能希望包含一些代码以避免在有人按下键(重复)时出现问题。