Comment sélectionner un élément qui a le focus avec jQuery

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 est de configurer un gestionnaire pour l’événement onFocus, puis de 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) renvoie l’élément actuellement focalisé et est plus rapide que l’utilisation du pseudo-sélecteur: focus.

Source: http://api.jquery.com/focus-selector/

 alert($("*:focus").attr("id")); 

J’utilise jQuery.

Il alertera l’identifiant de l’élément en train de se concentrer.

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 celui-ci :

 $.expr[':'].focus = function(a){ return (a == document.activeElement); } 

Vous pouvez ensuite sélectionner l’élément actuellement focalisé: $(":focus")

Non seulement les contrôles de formulaire peuvent avoir le focus. Tout élément HTML avec un index peut être concentré dans les navigateurs modernes.

Tiré des exemples pour la version actuelle de jQuery (1.7) docs:

 $(elem).is(":focus"); 

Pour vérifier que l’élément a le focus ou non.

 if ($("...").is(":focus")) { ... } 

Voici la version CoffeeScript de celui-ci. Basé sur le code jmanrubia:

$.expr[':'].focus = (a) -> a is document.activeElement

Vous l’appelleriez aussi comme si $(".:focus")