J'essaie de créer un popup div en appuyant sur la touche entrée, tandis que le div contient un bouton (que je script pour se concentrer quand il se déclenche) qui fermera la div quand vous appuyez sur Entrée à nouveau. Je reçois la touche d'entrée de liaison keypress
et keydown
, finissent par avoir des résultats différents.Keypress et Keydown génèrent un comportement différent
Reliure « keypress »
choses fonctionnent correctement, avec d'abord saisir les incendies clés une boîte de pop-up et une autre touche Entrée pour fermer la boîte de pop-up.
Référez-vous à JSFiddle.
Reliure « KEYDOWN »
Cela ne fonctionne pas correctement, comme il se déclenche et la boîte immédiatement rejeter popup (que vous ne verrez pas) avec une seule touche entrée.
Référez-vous à JSFiddle.
Ma question est de savoir pourquoi le clavier générerait un comportement étrange, c'est comme tirer deux fois la clé d'entrée pour moi, mais la vérité ce n'était pas. Si je supprime le focus du bouton(), cela fonctionnera correctement. Cela m'a intrigué.
Testé avec firefox et chrome.
Intéressant, cela indique que l'utilisation de 'ENTER' pour appuyer sur un bouton est liée en interne à' keydown' (qui se déclenche avant la touche 'keypress'). – bfavaretto
@Cody. Merci pour votre réponse. Je modifie le code avec vos conseils, je n'ai pas réussi à trouver du travail. http://jsfiddle.net/mochatony/SBxEH/11/ – TonyTakeshi
@TonyMocha - Voici (ce qui semble être pour moi) une démo de travail: http://jsfiddle.net/codyatfiny/xadKQ/1/ – temporalslide