将显示更改为“阻止”后将焦点设置为输入

时间:2013-06-15 16:34:21

标签: javascript

我无法在搜索中找到答案。

使用javascript我有一个带有onclick事件的div(ac),其中一部分是将焦点设置为先前隐藏的div(as)中的输入元素(gn)。

我希望这可行:

ac.onmousedown = function () {
    csect.style.display = "none";
    as.style.display = "block";
    gn.focus();
}

但没有,所以我加了小延迟

ac.onmousedown = function () {
    csect.style.display = "none";
    as.style.display = "block";
    setTimeout(function(){
        gn.focus()
        },30);
}

这使它工作。

这种延迟真的有必要吗?我错过了什么吗?

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

mousedown 事件处理程序触发后,点击的默认操作(将焦点设置为您单击的内容)发生。这意味着JavaScript将焦点设置为gn,然后点击ac的正常行为将焦点设置为ac

请参阅this example进行演示。

使用点击事件而非 mousedown 事件。