Paramétrer le focus de la zone de saisie à partir de l'événement ItemInvoked de ListView [Windows 8 Metro HTML5]
Edit: Si vous n'avez pas développé sur Windows 8, n'essayez pas de répondre à cette question. Ne pas le voter. Ne même pas lire. Ce n'est pas une application web ou d'un site web et de ne pas s'exécuter dans un navigateur. S'il vous plaît arrêter vers le bas-droit de vote de contenu que vous ne comprenez pas. C'est un Windows 8 METRO HTML5/js application qui s'exécute dans l'Exécution de Windows l'environnement.
Question D'Origine:
Je veux le curseur à "clignotant" dans la zone d'entrée, prêt à recevoir l'entrée. Je suis à l'aide de javascript pour définir le focus. Ce n'est pas le travail:
document.querySelector("#input-box").focus();
Ce que quelqu'un sait pourquoi? Est la méthode focus correcte à utiliser pour cela?
Merci.
Edit #2: Donc il a certainement quelque chose à voir avec le fait que je suis en train de mettre l'accent à l'entrée d'une ListView "itemInvoked" de l'événement. L'événement se déclenche correctement, l'élément est accessible depuis le gestionnaire d'événements, et la ligne ne contient pas d'erreurs à l'exécution. Je peux définir le focus à ma balise d'entrée standard d'un événement de clic de bouton, mais pas à partir d'un ItemInvoked événement. La question est donc, pourquoi je ne peux pas définir le focus à l'intérieur de ce gestionnaire d'événement?
source d'informationauteur JT703 | 2012-05-21
Vous devez vous connecter pour publier un commentaire.
J'ai créé ce petit projet de test avec seulement une zone de texte et dans le onload de définir le focus exactement de la même manière que vous le faites. J'ai essayé les deux sur l'émulateur et sur ma machine locale et les deux méthodes semblent fonctionner.
Pourriez-vous essayer si ce projet est de travailler pour vous sur votre ordinateur? Et pouvez-vous nous donner un peu plus de compréhension lorsque vous tentez de définir le focus? Droit maintenant, dans votre question, il n'y a pas beaucoup de renseignements sur le moment où ça se passe.
Vous pouvez télécharger l'exemple ici http://www.playingwith.net/Temp/TestFocusApplication.zip
Mise à jour
Bon, semble trouvé, si vous appelez la msSetImmediate fonction avec la fonction qui définit le focus à la zone de texte, cela semble fonctionner. Je n'ai pas une option pour télécharger l'exemple de test, de sorte que vous trouverez ci-dessous le code où j'ai fixer la ItemInvoked gestionnaire et d'appeler la setFocus fonction.
Qui construire êtes-vous ? aperçu de la consommation ou d'autres dev aperçus ? Je suis sur DP6 (disponible pour MS partenaires) et la JS standard œuvres de trucs.
Dans mon default.html j'ai:
Et puis, dans ma default.js dans la app-lancé-chargé standard de la fonction que j'ai:
La seule raison pour laquelle je peux penser que cela ne fonctionne pas, c'est que l'élément est accessible avant qu'il soit prêt. Que ou version antérieure de bugs. J'ai la solution rar d : http://www.mediafire.com/?ghz49gtfxlgr7en si vous voulez voir.
Essayez d'utiliser la non-jquery régulières javascript comme
document.getElementById( 'myElementsID' ).focus()
Essayer ce pour voir si elle aide à:
Bien que la question est très ancienne. Mais j'ai du mal à trouver la solution pour cela.
Première chose .focus() ne retourne aucune valeur, il suffit de le définir de focus et de l'indéfini est retourné.
Aussi, lorsque nous avons mis l'accent sur certains éléments assurez-vous que l'élément a de la tabindex présent, sinon il ne serait pas le focus (principalement dans chrome).
La requête suivante peut être utilisée: