Certaines des réponses suggèrent d'utiliser setTimeout
pour retarder le processus de focalisation sur l'élément cible. L'un d'eux mentionne que la cible se trouve à l'intérieur d'un dialogue modal. Je ne peux pas faire de commentaires supplémentaires sur l'exactitude de la setTimeout
sans connaître les détails spécifiques de l'endroit où il a été utilisé. Cependant, j'ai pensé que je devais fournir une réponse ici pour aider les personnes qui rencontrent ce fil de discussion comme je l'ai fait.
Le simple fait est que vous ne pouvez pas vous concentrer sur un élément qui n'est pas encore visible . Si vous rencontrez ce problème s'assurer que la cible est réellement visible lorsque la tentative de mise au point est faite. Dans mon cas, je faisais quelque chose de ce type
$('#elementid').animate({left:0,duration:'slow'});
$('#elementid').focus();
Cela n'a pas fonctionné. Je n'ai réalisé ce qui se passait que lorsque j'ai exécuté $('#elementid').focus()` depuis la console qui a fait travail. La différence - dans mon code au-dessus de la cible, il n'y a aucune certitude que la cible sera visible puisque l'animation peut ne pas l'être. complet . Et c'est là que se trouve l'indice
$('#elementid').animate({left:0,duration:'slow',complete:focusFunction});
function focusFunction(){$('#elementid').focus();}
fonctionne comme prévu. Moi aussi, j'avais initialement mis un setTimeout
et cela a aussi fonctionné. Toutefois, un délai d'attente choisi arbitrairement est susceptible de casser la solution tôt ou tard, en fonction de la lenteur avec laquelle le périphérique hôte s'assure que l'élément cible est visible.
2 votes
Pouvez-vous nous montrer votre code ?
0 votes
Il faudra en savoir plus, car cela fonctionne bien pour moi : jsfiddle.net/G7hwR/1 il suffit de cliquer n'importe où dans le panneau de droite et il se concentre...
0 votes
Le focus de cette page ne devrait-il pas fonctionner ? L'extrait que j'ai fourni ?
0 votes
Cela dépend de ce qu'il contient ; s'il n'est pas à l'intérieur de quelque chose, il est probablement exécuté avant même que la page ne soit rendue...
1 votes
Pour ceux qui viennent ici à partir de la recherche : les outils de développement intégrés au navigateur peuvent interférer avec le processus de recherche.
focus()
funcionalité. Plus d'informations