Mám vlastný CMS a chcel by som pridať „ponuku skratiek“ spustenú stlačením klávesu Ctrl dvakrát v priebehu, napríklad 300 milisekúnd. Používam prototyp, takže môj východiskový bod je zjavne:
Event.observe(document, "keypress", function(event)
{ if(event.keyCode == Event.KEY_XYZ) { show_shortcuts});
Mojím prístupom v tejto chvíli by bolo vyplnenie globálnej premennej aktuálnym časom v milisekundách a kontrola každého stlačenia klávesu, či sa stlačenie klávesu stalo pred menej ako 300 milisekúnd.
Ale možno existuje elegantnejšie riešenie?
odpovede:
6 pre odpoveď č. 1Toto by malo fungovať. Možno pridajte ďalšiu kontrolu, či nie sú stlačené súčasne niektoré ďalšie klávesy, napríklad Alt alebo Shift. Dúfam, že je to samovysvetľujúce, ak sa nielen pýtam a poskytnem objasnenie.
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);
}
});