Ich versuche, den Fokus von einer (jQuery Mobile) Texteingabe zu entfernen, wenn ein Benutzer Tabs auf dem Desktop wechselt. Während ich das activeElement in der unteren Konsole korrekt identifizieren kann, kann ich keine seiner Eigenschaften bearbeiten oder den Fokus entfernen.Wie entferne ich den Fokus von activeElement, wenn ich Tabs ändere (onfocus/onblur)?
Das ist, was ich tue:
// inside some init method
window.onfocus = function() {
// triggers
console.log(document.activeElement);
if (document.activeElement.tagName !== "BODY") {
console.log("clear focus");
document.activeElement.blur();
document.activeElement.className = "FOOBAR";
}
};
Wenn ich auf einer Form bin und eine Texteingabe konzentrieren, dann auf einem anderen Tab wechseln und mit dem Formular auf die Registerkarte zurück, der Ereignis-Listener Trigger und meine noch aktive Eingabe wird korrekt protokolliert. Aber das ist es ... Ich kann keine der Elementeigenschaften verwischen oder bearbeiten.
Frage:
Wie richtig entferne ich den Fokus von dem aktiven Element entweder auf window.onfocus
oder window.onblur
?
Danke!
PS: es ist auch nicht mit jQuery arbeiten:
$(window).on("focus", function() {
$(document.activeElement).blur();
});
und ich bin für eine einzige Lösung JavaScript.
EDIT:
document.activeElement.blur()
Werke aus der Konsole in Ordnung, aber nicht von meinen Zuhörern.
Haben Sie versucht, den Fokus auf ein anderes Element zu ändern, z. das Dokument? –
yup. Ich habe es gerade gelöst. Warte, ich poste. – frequent