1

我在同一个对象上同时使用 .keydown() 和 .keyup() 事件处理程序,每当键盘形式的键被释放时,jquery 就会触发 .keyup() .. 我想防止 jquery 触发 .keyup( ) 事件,直到所有键都被释放(不仅仅是一个),因为我正在使用多键按下功能......知道吗?

4

1 回答 1

1

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

编辑:这远非完美,但演示了这个概念http://jsfiddle.net/K2ny2/1/

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

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

于 2014-04-16T21:09:29.670 回答