/ / Zistiť dvojitý kláves Ctrl v JS - javascript, javascript-events, prototypejs, keypress

Zistite dvojité stlačenie klávesov Ctrl v JS - javascript, javascript-events, prototypejs, keypress

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ď č. 1

Toto 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);
}
});