fre*_*ent 8 javascript jquery tabs focus onblur
当用户在桌面上切换标签时,我正试图从(jQuery Mobile)文本输入中删除焦点.虽然我可以在下面的控制台中正确识别activeElement,但我无法编辑其任何属性或删除其焦点.
这就是我正在做的事情:
// 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";
}
};
Run Code Online (Sandbox Code Playgroud)
当我在一个表单上并聚焦文本输入时,然后切换到另一个选项卡并返回到带有表单的选项卡,事件侦听器触发并且我的仍然活动的输入被正确记录.然而就是这样......我无法模糊或编辑任何元素属性.
问题:
如何正确地从活动元素中移除焦点window.onfocus或window.onblur?
谢谢!
PS:它也不适用于jQuery:
$(window).on("focus", function () {
$(document.activeElement).blur();
});
Run Code Online (Sandbox Code Playgroud)
我正在寻找一个只有JavaScript的解决方案.
编辑:
document.activeElement.blur()从控制台工作正常,但不是从我的听众.
fre*_*ent 10
好.这有效:
window.onblur = function () {
document.activeElement.blur();
};
Run Code Online (Sandbox Code Playgroud)
所以看起来模糊效果很好,因为如果我activeElemnt 在调用它之前和之后控制blur()它从INPUT切换到BODY标签.正确地说,我的身体已被设定为FOOBAR.对我来说问题是文本元素仍然保留焦点,但我认为这是由于jQuery Mobile中的一些处理程序.
上述解决方案相反.我删除activeElement了用户切换标签时的焦点.作品.