Maison  >  Article  >  interface Web  >  Comment détecter le focus d'entrée dans jQuery : événements de survol ou de focus ?

Comment détecter le focus d'entrée dans jQuery : événements de survol ou de focus ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-19 18:29:02766parcourir

How to Detect Input Focus in jQuery: Hover vs. Focus Events?

Utiliser jQuery pour détecter le focus d'entrée

Vous souhaitez conserver une bordure sur un élément de formulaire dans un div lorsque l'entrée qu'il contient a le focus, même lorsque la souris bouge dans et hors de la div. Cependant, la méthode hover() de jQuery interfère avec l'événement focus().

jQuery 1.6

Avec jQuery 1.6, vous pouvez utiliser le sélecteur :focus intégré pour déterminer le focus d’entrée. Utilisez simplement :

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

jQuery 1.5 et versions antérieures

La méthode recommandée par Ben Alman pour cette tâche est la suivante :

jQuery.expr[':'].focus = function( elem ) {
  return elem === document.activeElement && ( elem.type || elem.href );
};

Toute version de jQuery

Si vous devez prendre en charge les deux versions de jQuery, vous pouvez ajouter le sélecteur :focus s'il est manquant :

(function ( $ ) {
    var filters = $.expr[":"];
    if ( !filters.focus ) { 
        filters.focus = function( elem ) {
           return elem === document.activeElement && ( elem.type || elem.href );
        };
    }
})( jQuery );

Alternativement, vous pouvez obtenir le élément actuellement ciblé avec :

$(document.activeElement)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn