2015-03-31 3 views
1

Я пытаюсь запустить функцию после нажатия клавиши более одного раза. Как я могу сделать это в JavaScript?Проверьте, нажата ли клавиша два раза

Я думал что-то вроде

if (e.keyCode == 27) { 
     if (e.keyCode == 27) { 
      alert("pressed two times"); 
     } 
} 
+1

Вы не можете сделать это синхронно, как это. Поскольку нет события doublekeypress, вы должны обнаружить его самостоятельно, вспомнив последнее нажатие клавиши и время его нажатия. – Touffy

+1

Возможный дубликат [Javascript - проверка, был ли нажат ключ дважды в течение 5 секунд] (http://stackoverflow.com/questions/23820862/javascript-check-if-key-was-pressed-twice-within-5-secs) – D4V1D

ответ

1

Если вы не возражаете время BTW ключевых надавливаний, магазина последней пресс в переменном и сравнить:

var lastKeyCode; 
if (e.keyCode == 27) { 
     if (e.keyCode == lastKeyCode;) { 
      alert("pressed two times"); 
     } else { 
      lastKeyCode = e.keyCode; 
     } 
} 
0

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

var KeyCodes; 
if (e.keyCode == 27) { 
     if (jQuery.inArray(e.keyCode, KeyCodes)) { 
      //mean two time exist 
     } else { 
      KeyCodes.push(e.keyCode); 
     } 
} 
1

вы можете определить глобальные переменные и сделать как этот

var pressCount = 0; // global 
 
if (e.keyCode == 27) { 
 
    pressCount++; 
 
    if (pressCount == 2) { 
 
    alert("pressed two times"); 
 
    } 
 
}

+0

И сбросить 'pressCount' в' 0' внутри 'if (pressCount == 2)' – halex

Смежные вопросы