在window
我绑定了两个keydown
事件。触发回调函数的条件是某个序列:
Event #1: ["down", "right", "a"]
Event #2: ["down", "right", "down", "right", "a"]
如何检查用户是否按下事件2键然后取消事件1?
Here is the code,专注于红色div并按键▼ ► ▼ ► A ,您将看到两个事件触发。我需要知道如何检查是否有更精确的触发......
要检查序列是否正确,我将序列与用户输入的结尾进行比较。
答案 0 :(得分:1)
更精确的是具有更多键的那个。改变你的代码,使它只有$(window).kb
一次,并且为了注册一个序列,一个人调用另一个函数来填充类似于这个的数组结构:
[
{
seq:["down", "right", "down", "right", "a"],
callback: cb1
},
{
seq:["down", "right", "a"],
callback: cb2
}
]
注册函数将根据它的seq.length
在该数组中插入任何新元素,因此该数组的排序将更加精确到不太精确。
现在你唯一的$(window).kb
,每次循环这个数组寻找匹配,一旦找到,它将调用相应的callback
并停止迭代数组。