Более точный - тот, у которого больше ключей. Измените свой код так, чтобы он только $(window).kb
один раз, и чтобы зарегистрировать последовательность, вызывается другая функция, которая заполнит структуру массива, подобную этой:
[
{
seq:["down", "right", "down", "right", "a"],
callback: cb1
},
{
seq:["down", "right", "a"],
callback: cb2
}
]
функция регистрации будет вставлять любой новый элемент в этот массив в соответствии с его значением seq.length
, поэтому этот массив всегда будет сортироваться от более точного к менее точному.
Теперь ваш единственный $(window).kb
будет каждый раз циклически повторять этот массив в поисках совпадения, после обнаружения он вызовет соответствующий callback
и прекратит итерацию массива.