Comment faire de l'élément à ne pas perdre le focus lorsque le bouton est pressé?
J'ai un textarea dans lequel je suis à l'insertion du contenu à l'emplacement du curseur (grâce à Tim de Down réponse). Il insère le contenu lorsque l'utilisateur appuie sur un bouton. Mais il semble que lorsque le bouton est enfoncé, l'accent mis sur le textarea est perdu. Comment puis-je garder le focus là, fournissant l'emplacement de l'accent circonflexe est également la même chose? Je pensais le long des lignes de l'aide evt.preventDefault()
avec .focusout()
. Si ça peut aider.
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas arrêter la mise au point de passer à un focusable élément et permettent encore le clic de la souris pour avoir un comportement normal (comme
click
le bouton). Si vous cliquez sur un élément qui prend en charge se concentrer comme un bouton, il va obtenir le focus clavier.Il est possible de programmation pour mettre le focus sur un élément si c'est fait correctement. Si mal fait, il peut ruiner la facilité d'utilisation d'une page.
Démo: http://jsfiddle.net/jfriend00/Ddffh/
unselectable="on"
semble également fonctionner, pour les boutons, au moins..preventDefault()
dans mousedown: jsfiddle.net/Ddffh/103 . Sur cliquez simplement parce qu'il sera trop tard car après mousedown, l'accent a déjà été perdu. Vous pouvez le vérifier dans votre propre démo en maintenant le bouton de la souris vers le bas pour un peu, avant de lâcher: lors de la première mousedown, l'accent sera perdu; après la libération, l'événement click incendies.Assurez-vous de gérer l'événement mousedown.
Ce sera le feu avant la mise au point d'un autre élément est perdu.
Dans votre événement mousedown gestionnaire, vous devez retourner false, afin de prévenir la propagation de l'évènement et du comportement par défaut. ( fonctionnera aussi pour les événements tactiles )
return false; //on your mousedown event
http://jsfiddle.net/Ddffh/143/
Vous devez la renouveler concentrer lorsque le bouton est pressé.
Code HTML:
Code Javascript:
Vous pouvez facilement le faire en appliquant le focus à la zone de texte par programmation comme le clic sur un bouton de fonction est terminée. De cette façon, vous pouvez retrouver le focus avec l'événement click à chaque fois.