Domanda

Ho un CMS personalizzato e vorrei aggiungere un "menu di scelte rapide" innescata dalla pressione del tasto Ctrl due volte nell'arco di, diciamo, 300 millisecondi. Io uso prototipo, quindi il mio punto di partenza, ovviamente, è:

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

Il mio approccio al momento sarebbe la compilazione di una variabile globale con l'ora corrente in millisecondi, e il controllo su ogni pressione se la pressione dei tasti è avvenuto a meno di 300 millisecondi fa.

Ma forse c'è una soluzione più elegante?

È stato utile?

Soluzione

Questo dovrebbe funzionare. Magari aggiungere qualche ulteriore verifica se non qualche altro tasto, come Alt o Maiusc vengono premuti contemporaneamente. La speranza è autoesplicativo, se non basta chiedere e fornisco un chiarimento.

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);
  }
});
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top