重点关注后的Mozilla焦点

时间:2014-03-23 18:14:27

标签: javascript jquery mozilla

我正在努力让我的代码针对Mozzila中14年未修复的错误而无法专注于输入。我在多个地方找到了(在Google mozilla focus not working中排名前20的结果中的大多数),设置焦点超时将会起到作用。然而,这对我来说无法在任何浏览器中工作,即使它是"官方" (每个人都说这对他们有用)处理这个问题的方法。

我有一个标识为focusout的简单test事件目标输入。

$(document).on('focusout', '#test', function()
{
    setTimeout(function()
    {
        $(this).focus();
    }, 500);
});

JsFiddle

有人能告诉我我做错了吗?

1 个答案:

答案 0 :(得分:2)

一个函数改变了范围,因此this不是你认为的,在超时this内部实际上是窗口,因为window.setTimeout的自然范围是{ {1}}

$(document).on('focusout', '#test', function() {
    var self = this;
    setTimeout(function() {
        $(self).focus();
    }, 500);
});

作为旁注,为什么你不让用户专注于输入以外的任何东西,看起来像是可怕的用户体验。