我正在努力让我的代码针对Mozzila中14年未修复的错误而无法专注于输入。我在多个地方找到了(在Google mozilla focus not working
中排名前20的结果中的大多数),设置焦点超时将会起到作用。然而,这对我来说无法在任何浏览器中工作,即使它是"官方" (每个人都说这对他们有用)处理这个问题的方法。
我有一个标识为focusout
的简单test
事件目标输入。
$(document).on('focusout', '#test', function()
{
setTimeout(function()
{
$(this).focus();
}, 500);
});
有人能告诉我我做错了吗?
答案 0 :(得分:2)
一个函数改变了范围,因此this
不是你认为的,在超时this
内部实际上是窗口,因为window.setTimeout
的自然范围是{ {1}}
$(document).on('focusout', '#test', function() {
var self = this;
setTimeout(function() {
$(self).focus();
}, 500);
});
作为旁注,为什么你不让用户专注于输入以外的任何东西,看起来像是可怕的用户体验。