Я бы хотел, чтобы улавливать двойное нажатие клавиши (например, для Char T), чтобы сделать некоторую специальную обработку. Я бы хотел, чтобы нажатия клавиш выполнялись достаточно быстро, чтобы не интерпретироваться как два отдельных пресса, просто как двойной клик. Любые идеи, как я могу это достичь?Как заблокировать двойное нажатие клавиши в javascript?
ответ
При нажатии клавиши (ов) запишите время. Затем сравните его со временем, когда вы отметили последнее время, когда они были поражены.
Если разница находится в пределах вашего порога, считайте ее двойной. В противном случае, не надо. Грубый пример:
var delta = 500;
var lastKeypressTime = 0;
function KeyHandler(event)
{
if (String.fromCharCode(event.charCode).toUpperCase()) == 'T')
{
var thisKeypressTime = new Date();
if (thisKeypressTime - lastKeypressTime <= delta)
{
doDoubleKeypress();
// optional - if we'd rather not detect a triple-press
// as a second double-press, reset the timestamp
thisKeypressTime = 0;
}
lastKeypressTime = thisKeypressTime;
}
}
имеет переменный (возможно first_press
), который вы установили в верно, когда происходит событие нажатия клавиши, и запустить таймер, который сбрасывает переменный в ложь после определенного количества времени (однако быстро вы хотите их нажать клавиши).
В случае нажатия клавиши, если эта переменная истинна, у вас есть двойное нажатие.
Пример:
var first_press = false;
function key_press() {
if(first_press) {
// they have already clicked once, we have a double
do_double_press();
first_press = false;
} else {
// this is their first key press
first_press = true;
// if they don't click again in half a second, reset
window.setTimeout(function() { first_press = false; }, 500);
}
}
И вы можете сделать «половину секунды» настраиваемым постоянным значением, которое пользователи могут изменить. Правила юзабилити! – montrealist
-1 Это работает для * каждой * нажатой клавиши. –
Я не пытался предоставить ему решение для вставки. Просто показывая ему общую идею. –
- 1. Двойное нажатие клавиши в Java
- 2. нажатия Javascript в нажатие клавиши
- 3. C# - Как я могу заблокировать ввод буквы на нажатие клавиши?
- 4. Включить отключенное нажатие клавиши?
- 5. Как можно переназначить быстрое последовательное двойное нажатие клавиши A, чтобы функционировать как одно нажатие клавиши B в любом режиме?
- 6. Как имитировать нажатие клавиши с помощью Javascript?
- 7. Слушайте двойное нажатие клавиши с помощью API-интерфейсов Chrome.
- 8. Как сделать нажатие клавиши на клавиатуре, как нажатие другой клавиши?
- 9. Как записать нажатие клавиши?
- 10. Как перехватить нажатие клавиши?
- 11. Как перехватить нажатие клавиши?
- 12. Как переключить нажатие клавиши
- 13. Как получить нажатие клавиши?
- 14. Двойное нажатие на TextView
- 15. Двойное нажатие ссылок в webview
- 16. Отключить двойное нажатие на Windows Phone
- 17. Нажатие клавиши в C#
- 18. Нажатие клавиши в файл
- 19. javascript Многоножка, нажатие клавиши не работает
- 20. Имитировать нажатие клавиши с помощью встроенного javascript
- 21. Функция выполнения javascript, нажатие клавиши «esc»
- 22. Как проверить, было ли нажатие клавиши нажатием клавиши в текстовом поле нажатие клавиши события
- 23. Как активировать двойное нажатие, нажатие и удерживание клавиш в моей пользовательской клавиатуре iOS 8?
- 24. AngularJs предотвращает двойное нажатие ссылки
- 25. Как отменить нажатие клавиши (VIM)
- 26. CRichEditCtrl как игнорировать нажатие клавиши?
- 27. Python: Как сгенерировать нажатие клавиши?
- 28. Android: Как записать нажатие клавиши?
- 29. Как имитировать непрерывное нажатие клавиши
- 30. Как активировать нажатие клавиши ввода
Это решение использует клавишу Ctrl. Он не говорит, что ему это нужно (хотя это имеет смысл для меня). –
** @ Джош Стодола: ** HA! Показывает, насколько осторожен я читаю ... Видел «Char T», читал «Ctrl T» ... oops! – Shog9
отлично работает! – ak3nat0n