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 № 1To 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);
}
});