【发布时间】:2014-05-31 22:53:46
【问题描述】:
我在同一个对象上同时使用 .keydown() 和 .keyup() 事件处理程序,每当键盘上的键被释放时,jquery 就会触发 .keyup() .. 我想阻止 jquery 触发.keyup() 事件,直到所有键都被释放(不仅仅是一个),因为我正在使用多键按下功能......知道吗?
【问题讨论】:
标签: jquery keydown keyup keyrelease
我在同一个对象上同时使用 .keydown() 和 .keyup() 事件处理程序,每当键盘上的键被释放时,jquery 就会触发 .keyup() .. 我想阻止 jquery 触发.keyup() 事件,直到所有键都被释放(不仅仅是一个),因为我正在使用多键按下功能......知道吗?
【问题讨论】:
标签: jquery keydown keyup keyrelease
存储 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();
}
}
您可能希望包含一些代码以避免有人按住键(重复)时出现问题。
【讨论】: