Вопрос

У меня есть собственная CMS, и я хотел бы добавить «контекстное меню», вызываемое нажатием кнопки Ctrl нажмите дважды в течение, скажем, 300 миллисекунд.Я использую прототип, поэтому моя отправная точка, очевидно, такова:

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

Мой подход на данный момент заключается в заполнении глобальной переменной текущим временем в миллисекундах и проверке при каждом нажатии клавиши, произошло ли нажатие клавиши менее 300 миллисекунд назад.

Но, может быть, есть более элегантное решение?

Это было полезно?

Решение

Это должно сработать.Возможно, добавьте дополнительную проверку, если одновременно не нажата какая-либо другая клавиша, например Alt или Shift.Надеюсь, это говорит само за себя, если не просто спросите, и я дам разъяснения.

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);
  }
});
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top