Maison > interface Web > js tutoriel > Comment puis-je détecter de manière fiable le focus d'entrée pour les effets de survol dynamiques avec jQuery sur différentes versions de navigateur ?

Comment puis-je détecter de manière fiable le focus d'entrée pour les effets de survol dynamiques avec jQuery sur différentes versions de navigateur ?

Linda Hamilton
Libérer: 2024-11-15 18:19:02
original
230 Les gens l'ont consulté

How Can I Reliably Detect Input Focus for Dynamic Hover Effects with jQuery Across Different Browser Versions?

Exploiter jQuery pour détecter le focus d'entrée pour les effets de survol dynamiques

Lors de la conception d'interfaces utilisateur, il est crucial de prendre en compte la compatibilité entre navigateurs. Alors que les effets de survol utilisant CSS :hover fonctionnent de manière transparente dans la plupart des navigateurs modernes, IE6 pose un défi car il ne prend en charge que :hover sur les balises d'ancrage (). Pour résoudre ce problème, jQuery propose la méthode hover() comme solution. Cependant, cette méthode entre en conflit avec l'événement focus() de jQuery lorsqu'elle est appliquée à un

élément contenant une entrée.

Pour surmonter cet obstacle, nous pouvons implémenter une logique conditionnelle pour empêcher la bordure de disparaître lorsque l'utilisateur passe la souris sur une entrée avec le focus. Malheureusement, jQuery ne dispose pas d'un sélecteur :focus, ce qui incite à rechercher une solution alternative.

jQuery 1.6 et versions ultérieures

Dans jQuery 1.6, un sélecteur :focus a été introduit, simplifier la tâche. Utilisez simplement le code :

$("..").is(":focus")
Copier après la connexion

jQuery 1.5 et versions antérieures

Pour les versions antérieures de jQuery, vous pouvez définir un sélecteur personnalisé :

jQuery.expr[':'].focus = function( elem ) {
  return elem === document.activeElement && ( elem.type || elem.href );
};
Copier après la connexion

Cela vous permet de vérifier le focus en utilisant :

if ($("...").is(":focus")) {
  ...
}
Copier après la connexion

Toutes les versions de jQuery

Pour déterminer quel élément a actuellement le focus :

$(document.activeElement)
Copier après la connexion

Compatibilité entre versions

Si vous n'êtes pas sûr de la version de jQuery, vérifiez si le sélecteur :focus existe. Sinon, ajoutez-le manuellement :

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

En mettant en œuvre ces solutions, vous pouvez garantir que les interactions de focus de saisie se comportent de manière cohérente dans tous les navigateurs.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal