Je voudrais être capable de piéger la double touche (pour le Char T par exemple) afin de faire un traitement spécial. Je voudrais que les pressions de touche se produisent assez rapidement pour ne pas être interprétées comme deux presses séparées, juste comme le double clic. Des idées comment je peux y parvenir?Comment faire pour intercepter la touche double en appuyant sur javascript?
Répondre
Lorsque les touches sont touchées, notez l'heure. Puis comparez avec le temps que vous avez noté last fois la clé (s) ont été touchées.
Si la différence est inférieure à votre seuil, considérez-le comme un double. Sinon, ne le faites pas. exemple grossier:
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;
}
}
Avoir une variable (peut-être first_press
) que vous définissez à true lorsqu'un événement keypress arrive, et commencer une minuterie qui réinitialise la variable false après un certain laps de temps (mais rapide vous voulez les appuyer sur les touches).
Dans votre événement de pression de touche, si cette variable est vraie, appuyez deux fois sur.
Exemple:
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);
}
}
ET vous pouvez faire "demi-seconde" une valeur persistante configurable que les utilisateurs peuvent changer. Règles d'utilisabilité – montrealist
-1 Cela fonctionne pour * chaque * touche enfoncée. –
Je n'essayais pas de lui fournir une solution d'accueil. Juste lui montrer l'idée générale. –
- 1. En appuyant sur une touche dans C#
- 2. Interception de la touche Nokia Ctrl/Chr en appuyant sur
- 3. ASP.NET Appelez la fonction javascript en appuyant sur la touche Entrée
- 4. Comment bloquer la soumission d'un formulaire en appuyant sur la touche Entrée ou Retour?
- 5. Pourquoi la valeur d'entrée ne peut pas être modifiée en appuyant sur la touche d'échappement
- 6. Comment puis-je faire pivoter une image de la flèche en appuyant sur cette image?
- 7. Comment puis-je faire un double appui sur la touche Ctrl?
- 8. Comment faire une double liste-liée en javascript + html
- 9. Intercepter l'événement javascript
- 10. Comment intercepter la méthode save sur ActiveRecord?
- 11. Déclenchement d'une fonction en appuyant sur une touche si aucune entrée n'est sélectionnée
- 12. désactiver la sélection de texte tout en appuyant sur «shift»
- 13. Comment intercepter une touche de tabulation dans le contrôle d'édition
- 14. Comment faire pour "frapper n'importe quelle touche" en python?
- 15. Faire entrer la clé se comporte comme la touche de tabulation en Javascript
- 16. Comment arrêter la fermeture de l'application de boîte de dialogue mfc en appuyant sur ESC
- 17. Intercepter des appels spécifiques en Javascript
- 18. Comment faire la distinction entre les cookies en double?
- 19. Comment faire pour intercepter l'exception OutOfMemoryException dans .NET (complément Excel)
- 20. Javascript en PDF double valeurs
- 21. IME - Comment gérer la touche Appuyez sur
- 22. jQuery: comment capturer la touche keypress en utilisant live()
- 23. Variables en double dans JavaScript
- 24. Existe-t-il un moyen de formater un tampon python complet dans emacs en appuyant sur une touche?
- 25. Javascript pour faire défiler jusqu'à la fin
- 26. Comment puis-je intercepter dans Emacs
- 27. Comment faire pour que la touche TAB ferme une TComboBox sans perdre la position actuelle?
- 28. Gestion des objets en double dans Javascript
- 29. Multiligne NSTokenField et la touche de retour
- 30. Javascript: Ajuster la date dans la zone de texte en utilisant l'événement de pression de touche
Cette solution utilise la touche Ctrl. Il ne dit pas qu'il a besoin de ça (même si cela a du sens pour moi). –
** @ Josh Stodola: ** HA! Montre comment j'ai lu attentivement ... Saw "Char T", lire "Ctrl T" ... oups! – Shog9
fonctionne très bien merci! – ak3nat0n