window上,我绑定了两个keydown事件。触发回调函数的条件是一定的顺序:

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


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

Here is the code,将焦点放在红色div上,然后按▼►▼►A键,您将看到两个事件触发。我需要知道如何检查是否触发了更精确的...

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

最佳答案

更为精确的一种是具有更多键的一种。更改您的代码,使其仅$(window).kb一次,并注册一个序列,一个调用另一个函数,该函数将填充类似于以下内容的数组结构:

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


注册函数将根据其seq.length在该数组中插入任何新元素,因此,此数组将始终按更精确的顺序排序。

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

关于javascript - 用键盘制作连击并检测最精确,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3661333/

10-13 09:47