/ / Wykryj podwójne naciśnięcie klawisza Ctrl w JS - javascript, zdarzenia javascript, prototypejs, keypress

Wykryj podwójne naciśnięcie klawisza Ctrl w JS - javascript, zdarzenia javascript, prototypejs, keypress

Mam niestandardowy CMS i chciałbym dodać "menu skrótów" wywołane naciśnięciem klawisza Ctrl dwa razy wewnątrz, powiedzmy, 300 milisekund. Używam prototypu, więc moim punktem wyjścia jest oczywiście:

Event.observe(document, "keypress", function(event)
{ if(event.keyCode == Event.KEY_XYZ) { show_shortcuts});

Moje podejście w tej chwili polegałoby na zapełnianiu zmiennej globalnej bieżącym czasem w milisekundach i sprawdzaniu każdego naciśnięcia klawisza, czy naciśnięcie klawisza nastąpiło mniej niż 300 milisekund temu.

Ale może jest bardziej eleganckie rozwiązanie?

Odpowiedzi:

6 dla odpowiedzi № 1

To powinno działać. Może dodać dalsze sprawdzanie, jeśli nie zostanie naciśnięty inny klawisz, na przykład Alt lub Shift. Mam nadzieję, że jest to samo w sobie wyjaśniające, jeśli nie tylko poproszę i udzielę wyjaśnień.

var dblCtrlKey = 0;
Event.observe(document, "keydown", function(event) {
if (dblCtrlKey != 0 && event.keyCode == 17) {
alert("Ok double ctrl");
} else {
dblCtrlKey = setTimeout("dblCtrlKey = 0;", 300);
}
});