用键盘制作组合并检测最精确

时间:2010-09-07 18:02:31

标签: javascript jquery events

window我绑定了两个keydown事件。触发回调函数的条件是某个序列:

Event #1: ["down", "right", "a"]
Event #2: ["down", "right", "down", "right", "a"]

如何检查用户是否按下事件2键然后取消事件1?

Here is the code,专注于红色div并按键 A ,您将看到两个事件触发。我需要知道如何检查是否有更精确的触发......

要检查序列是否正确,我将序列与用户输入的结尾进行比较。

1 个答案:

答案 0 :(得分:1)

更精确的是具有更多键的那个。改变你的代码,使它只有$(window).kb一次,并且为了注册一个序列,一个人调用另一个函数来填充类似于这个的数组结构:

[
 {
    seq:["down", "right", "down", "right", "a"],
    callback: cb1
 },
 {
    seq:["down", "right", "a"],
    callback: cb2
 }
]

注册函数将根据它的seq.length在该数组中插入任何新元素,因此该数组的排序将更加精确到不太精确。

现在你唯一的$(window).kb,每次循环这个数组寻找匹配,一旦找到,它将调用相应的callback并停止迭代数组。