Для пасхального праздника я хочу немного удивить «Пасхальное яйцо охоты» на сайте, который я разрабатываю. Два из этих пяти Пасхальные яйца Я скрываюсь, будет рукоположен в рукописный. Это не будет похоже на сделку типа «Нажмите CTRL и TAB в то же время», но будет иметь тип «Pres UP три раза, а затем RIGHT три раза». Это будет искать серию нажатий клавиш вместо двух нажатых одновременно. У меня есть эта функция настроена, но по какой-то нечетной причине она не работает так, как должна.Обнаружение комбинации клавишных клавиш с Javascript
Примечание: Скрипт ниже ищет следующие нажатия кнопок Seires:
surprise1 - LEFT (x3), RIGHT (x3), UP (x3), DOWN (x3)
surprise2 - SHIFT (x3) , TAB (x3), CTRL (x3)
$(document.body).keydown(function(e) {
surprise1(e);
surprise2(e);
});
function surprise1(e) {
var ev = (e) ? e : window.event;
var k = ev.keyCode;
if (k > 36 && k < 41) {
typekeys[k] = isNaN(typekeys[k]) ? 0 : typekeys[k];
typekeys[k]++;
if (typekeys[37] == 3) {
if (typekeys[37] == 3 && typekeys[39] == 3) {
if (typekeys[37] == 3 && typekeys[39] == 3 && typekeys[38] == 3) {
if (typekeys[37] == 3 && typekeys[39] == 3 && typekeys[38] == 3 && typekeys[40] == 3) {
alert("You've found Surprise 1! Contact the site admin ASAP to get your prize!");
typekeys[37] = typekeys[39] = typekeys[38] = typekeys[40] = 0;
}
} else {
typekeys[40] = 0;
}
} else {
typekeys[38] = typekeys[40] = 0;
}
} else {
if (typekeys[37] > 3) {
typekeys[37] = 0;
}
typekeys[39] = typekeys[38] = typekeys[40] = 0;
}
} else {
typekeys[37] = typekeys[39] = typekeys[38] = typekeys[40] = 0;
}
};
function surprise2(e) {
var ev = (e) ? e : window.event;
var k = ev.keyCode;
if (k > 8 && k < 18) {
typekeys[k] = isNaN(typekeys[k]) ? 0 : typekeys[k];
typekeys[k]++;
if (typekeys[16] == 3) {
if (typekeys[9] == 3) {
if (typekeys[16] == 3 && typekeys[9] == 3 && typekeys[17] == 3) {
alert("You've found Surprise 2! Contact the site admin ASAP to get your prize!");
typekeys[16] = typekeys[9] = typekeys[17] = 0;
}
}
} else {
if (typekeys[16] > 3) {
typekeys[16] = 0;
}
typekeys[9] = typekeys[17] = 0;
}
} else {
typekeys[16] = typekeys[9] = typekeys[17] = 0;
}
};
Помните, что я точно говорю, почему это не работает? Мне кажется, это должно сработать.
код не работает, т.е. .... – Stefan
Какую версию IE вы используете? – codef0rmer
IE 9, но он также может быть jsFiddle, не скопировал код в другом месте – Stefan