Comment pouvez-vous sélectionner un élément qui a le focus actuel?
Il n'y a pas de filtre :focus
dans jQuery, c'est pourquoi nous pouvons utiliser quelque chose comme ceci:
$('input:focus').someFunction();
La meilleure façon de le faire consiste à configurer un gestionnaire pour l'événement onFocus, puis à définir une variable sur l'ID de l'élément qui a le focus.
quelque chose comme ça:
var id;
$(":input").focus(function () {
id = this.id;
});
$(document.activeElement)
retournera l'élément actuellement ciblé et sera plus rapide que d'utiliser le pseudo sélecteur: focus.
alert($("*:focus").attr("id"));
J'utilise jQuery.
Cela alertera l'identifiant de l'élément se concentrant.
J'espère que cela vous sera utile.
As-tu essayé
$.extend($.expr[':'], {
focused: function(elem) { return elem.hasFocus; }
});
alert($('input :focused').length);
Si vous utilisez JQuery, vous pouvez écrire un sélecteur comme ceci :
$.expr[':'].focus = function(a){ return (a == document.activeElement); }
Vous pouvez ensuite sélectionner l'élément actuellement ciblé: $(":focus")
Non seulement les contrôles de formulaire peuvent avoir le focus. Tout élément html avec un tabindex peut être ciblé dans les navigateurs modernes.
Tiré des exemples de la version actuelle de jQuery (1.7) docs:
$(elem).is(":focus");
Pour vérifier l'élément a le focus ou non.
if ($("...").is(":focus")) {
...
}
Voici la version CoffeeScript de celui-ci. Basé sur le code de jmanrubia:
$.expr[':'].focus = (a) ->
a is document.activeElement
Vous voudriez aussi l'appeler comme ça $(".:focus")