Heim >Web-Frontend >js-Tutorial >Wie kann ich jQuery verwenden, um den Eingabefokus zu erkennen und das Entfernen des Randes beim Herausziehen der Maus zu verhindern?

Wie kann ich jQuery verwenden, um den Eingabefokus zu erkennen und das Entfernen des Randes beim Herausziehen der Maus zu verhindern?

Susan Sarandon
Susan SarandonOriginal
2024-11-29 02:50:10409Durchsuche

How Can I Use jQuery to Detect Input Focus and Prevent Border Removal on Mouse Out?

Verwendung von jQuery zur Bestimmung des Eingabefokus und zur Verhinderung der Randentfernung

Auf der Suche nach einer browserübergreifenden Kompatibilität ist die Verwendung von jQuerys .hover ()-Methode zur Nachahmung von CSSs :hover auf Nicht- Elemente in Internet Explorer 6 hat zu einem unvorhergesehenen Problem geführt. Wenn eine Eingabe innerhalb eines dieser

s den Fokus erhält, verschwindet der von der .hover()-Methode erstellte Rahmen beim Herausfahren der Maus.

Um dieses Problem zu beheben, versuchen wir festzustellen, ob eine Eingabe den Fokus hat Maus raus. Da jQuery keinen :focus-Selektor hat, sind alternative Methoden erforderlich.

jQuery 1.6 und höher

jQuery 1.6 enthält einen :focus-Selektor, sodass keine benutzerdefinierten Implementierungen erforderlich sind. Verwenden Sie einfach $("..").is(":focus"), um nach fokussierten Eingaben zu suchen.

jQuery 1.5 und niedriger

Für frühere jQuery-Versionen: Es wird empfohlen, einen benutzerdefinierten :focus-Selektor zu definieren. Dies kann erreicht werden mit:

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

Dadurch wird sichergestellt, dass nur Formularsteuerelemente und Hyperlinks als fokussiert betrachtet werden.

Alternativ können Sie Folgendes verwenden:

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

oder:

$("input:focus").doStuff();

Alle jQuery-Versionen

Zur Bestimmung Welches Element den Fokus hat, verwenden Sie unabhängig von der jQuery-Version:

$(document.activeElement)

Prüfung auf fehlenden :focus Selector

Wenn Sie sich über die jQuery-Version nicht sicher sind, können Sie dies tun Fügen Sie den :focus-Selektor manuell hinzu:

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

Durch den Einsatz dieser Techniken können Sie das gewünschte Rahmenverhalten beibehalten und gleichzeitig an Browser-spezifische Anpassungen anpassen Einschränkungen.

Das obige ist der detaillierte Inhalt vonWie kann ich jQuery verwenden, um den Eingabefokus zu erkennen und das Entfernen des Randes beim Herausziehen der Maus zu verhindern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn