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!