jQuery alternative pour le document.activeElement
Ce que je voulais faire est de trouver à chaque fois que l'utilisateur est engagée avec un INPUT ou TEXTAREA élément et de définir une variable drapeau de vrai... et mettre le drapeau à false immédiatement après que l'utilisateur n'est plus engagé avec eux (ie. ils ont cliqué de l'INPUT/TEXTAREA éléments).
J'ai utilisé jQuery docuemnt.prêt de fonction pour ajouter l'attribut onclick de mon élément du corps et de l'attribuer à mon coordonné() fonction.
Le code de l'coordonné() la fonction est comme suit:
fonction coordonné() { activeObj = document.activeElement; var focal = false; si (activeObj.tagName == "INPUT" || activeObj.tagName == "TEXTAREA") { inFocus = true; } }
Je tiens vraiment à garder par le projet dans le cadre de jQuery, mais n'arrive pas à trouver un moyen d'accomplir la même logique que ci-dessus en utilisant SIMPLEMENT jQuery syntaxe.
OriginalL'auteur Brownbay | 2010-07-25
Vous devez vous connecter pour publier un commentaire.
Vous voulez le focus et blur gestionnaires d'événements. Par exemple...
Je suis sûr qu'une virgule, vous obtiendrez input OU textarea, mais vous obtenez l'idée si ce n'est pas dehors
Comme un additif au point ci-dessus, je suis assez nouveau dans le JavaScript et jQuery... je ne savais pas que l'utilisation de ces fonctions à l'EXTÉRIEUR du document.fonction ready aurait JS lier ces événements essentiellement inexistant éléments que le DOM n'a pas encore chargé.
OriginalL'auteur Rob
OriginalL'auteur user1933288
Pour la question de déterminer si l'concentre actuellement élément est l'un de ceux de l'utilisateur des éléments d'entrée, ci-dessous devrait fonctionner:
Conceptuellement je n'aime pas cette approche génériques pour le cas où vous êtes à l'écoute d'événements mondiaux (comme les principaux strocks) et d'essayer de décider si elles doivent être traitées par votre gestionnaire ou être ignoré, car il est destiné à quelqu'un d'autre. La raison pour laquelle je ne l'aime pas parce qu'il n'est pas avenir sûr et aussi qui sait quoi d'autre que quelqu'un peut être en outre des éléments d'entrée.
Un autre plus solide, mais difficile à mettre en œuvre l'idée est de tester si l'événement est destiné à un élément qui a tabIndex >= 0. Les éléments d'entrée ont tabIndex === 0, par défaut, de sorte qu'il devient plus ou moins similaire à l'approche ci-dessus. Vous pouvez facilement vérifier cela par
event.target.tabIndex >= 0
sans besoin de s'appuyer surdocument.activeElement
.Les astuces ici (si vous voulez être générique), c'est que vous devez également vous assurer de l'événement.élément cible est ni dans une autre branche dans le DOM de la hiérarchie, ni à quelqu'un d'autre entre l'événement.currentTarget et de l'événement.cible qui a
tabIndex >= 0
. Vous avez l'idée: Cela peut devenir glauque mais j'ai juste pensé à noter si quelqu'un est dans le besoin de solution générique.OriginalL'auteur Shital Shah
Vous pouvez faire quelque chose comme ceci :
ce serait à celui qui est porté indépendamment de son type. De sorte qu'il peut être une ENTRÉE ou un TEXTAREA
OriginalL'auteur Soufiane Hassou
Iis le
.blur()
événement de ce que vous recherchez?OriginalL'auteur chryss