Chciałbym mieć możliwość uwięzienia podwójnego naciśnięcia klawisza (np. Dla Char T) w celu wykonania specjalnego przetwarzania. Chciałbym, aby naciśnięcia klawiszy były wystarczająco szybkie, aby nie były interpretowane jako dwa oddzielne naciśnięcia, tylko jak podwójne kliknięcie. Jakieś pomysły, jak mogę to osiągnąć?Jak pułapkę naciśnij dwukrotnie klawisz w javascript?
Odpowiedz
Po naciśnięciu przycisku (-ów) zanotuj godzinę. Następnie porównaj go z czasem, w którym zanotowano, że klucz (i) zostały uderzone.
Jeśli różnica mieści się w Twoim progu, możesz uznać ją za podwójną. W przeciwnym razie nie rób tego. Szorstki przykład:
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;
}
}
miał zmienny (może first_press
), który ustawiony na true, gdy zdarzenie przyciśnięcie dzieje i zacząć timer, który będzie zresetować zmienną false po upływie określonego czasu (jednak szybko chcesz im nacisnąć klawisze).
W swoim zdarzeniu keypress, jeśli ta zmienna jest prawdziwa, masz podwójne naciśnięcie.
przykład:
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);
}
}
I można ustawić "pół-sekundę" konfigurowalną wartość stałą, którą użytkownicy mogą zmienić. Zasady użyteczności! – montrealist
-1 Działa to dla * każdego * naciśniętego klawisza. –
Nie próbowałem dostarczyć mu rozwiązania typu "drop-in". Po prostu pokazując mu ogólny pomysł. –
- 1. Greasemonkey Javascript Naciśnij klawisz Pomoc
- 2. Naciśnij klawisz z Java
- 3. Programowo naciśnij klawisz "Lewo" w polu tekstowym
- 4. Naciśnij klawisz Enter, aby kontynuować w C
- 5. Silverlight obsługi naciśnij klawisz wiele kombinacji
- 6. Python, naciśnij dowolny klawisz, aby wyjść
- 7. Wywołanie zdarzenia Escape naciśnij klawisz przez jquery
- 8. Naciśnij klawisz TAB, a następnie klawisz ENTER w Selenium WebDriver z Ruby
- 9. Jak wykryć klawisz Esc Naciśnij klawisz React i jak sobie z nim radzić
- 10. Ukryj "naciśnij dowolny klawisz, aby kontynuować" w skrypcie wsadowym
- 11. Jak mogę wykryć klawisz shift + w javascript?
- 12. Wybierz pozycję WinForm ListView, naciśnij klawisz Delete: Kod wyzwalania
- 13. "Naciśnij dowolny klawisz, aby kontynuować" wstrzymuje mój program
- 14. Jquery wybierz pole tekstowe NEXT na klawisz Enter Naciśnij przycisk
- 15. Zdarzenie Fire na klawisz Enter naciśnij pole tekstowe
- 16. Zezwalaj tylko na jedną wartość na jeden klawisz naciśnij
- 17. Globalny klucz Windows Naciśnij
- 18. Wyślij pułapkę v2 w Javie
- 19. Debugger nie trafił w pułapkę
- 20. Pułapka na pułapkę NaN
- 21. Starling AS3 touch naciśnij naciśnij i przytrzymaj
- 22. W jaki sposób VS kompiluje aplikacje konsoli, aby wyświetlić "Naciśnij dowolny klawisz, aby kontynuować"?
- 23. klikając przycisk "prześlij" i naciśnij "
- 24. JavaScript: Klawisz Escape = przycisk powrotu przeglądarki
- 25. jest sposób użycia danych wejściowych ("Naciśnij dowolny klawisz, aby kontynuować") w wersji 2.6
- 26. Jak wykrywać naciśnięty klawisz w TypeScript?
- 27. Zminimalizuj aktywność na klawiaturze z powrotem naciśnij
- 28. Przerwij pułapkę zamiast przepełnienia bufora
- 29. Klawisz skrótu Szybki edytor tagów w Aptana
- 30. Naciśnij klawisze klawiatury przy użyciu pliku wsadowego.
Ten roztwór używa Ctrl. Nie mówi, że tego potrzebuje (chociaż ma to dla mnie sens). –
** @ Josh Stodola: ** HA! Pokazuje, jak uważnie czytam ... Widzisz "Char T", przeczytaj "Ctrl T" ... oops! – Shog9
działa świetnie dzięki! – ak3nat0n