Trouvez l'élément focalisable le plus proche en utilisant jquery?
Je veux que mes zones de texte ont la particularité que chaque fois que les utilisateurs appuyez sur enter, l'accent de la plus proche de l'élément que ce soit, ils sont(saisie, case à cocher, bouton radio, select, a, div) aussi longtemps qu'ils peuvent se concentrer. Comment puis-je le faire à l'aide de jquery?
source d'informationauteur sadcat
Vous devez vous connecter pour publier un commentaire.
Je l'ai déjà fait avant. Essayer ma solution ici http://jsfiddle.net/R8PhF/3/
Par la voie, c'est une technique légitime question, et pourrait très bien être une exigence de l'entreprise. J'ai été demandé de construire un tel comportement dans le back-office applications assez offten. Il existe de nombreuses applications natives qui se comportent de cette façon.
Je me suis adressé à cette exigence par la construction de ma forme à l'aide de DIVs avec contenteditable=true comme dans l'exemple ci-dessous.
Vous pouvez le capturer l'événement clé pour ENTRER et de simplement mettre l'accent sur le frère suivant à l'aide de JQuery.
Laissez-moi savoir si vous avez besoin de plus de précisions.
Espère que cette aide. Bonne Chance.
Algorithme sage:
De garder une liste de tous les éléments qui peuvent être concentré. Ne pas compter sur le DOM pour cette. Vous doit garder la liste vous-même. Si vous ne savez pas quels sont les éléments sur la page, vous avez déjà fait quelque chose de mal. Le DOM est une vue pas un de la banque de donnéesle traiter en conséquence. Beaucoup de novices qui utilisent jQuery faire cette erreur, et avec jQuery cette erreur est facile à faire.
Trouver la position de tous les focussable éléments sur la page. Conformément à l'1. la meilleure façon est bien sûr à savoir la position relative de tous les éléments, même sans regarder le DOM. Avec jQuery, vous pouvez utiliser
.dimension()
. Vous pourriez avoir à faire un peu de tenue de garder cette liste à jour (ie. lors de vos données/voir les changements).Trouver la position de l'élément focalisé.
Utiliser un algorithme de comparer à votre liste d'autres positions et la plus proche (ce qui peut signifier beaucoup de choses, vous savez probablement ce que vous voulez).
Puis définissez le focus à l'élément.
Il y a beaucoup de choix que vous pouvez faire ici, certaines dépendent de la performance d'autres personnes dépendent de l'interaction et de la conception de l'interface.