奇怪的焦点()行为

时间:2015-12-09 15:01:05

标签: javascript jquery html setfocus autofocus

我的目标是在弹出窗口中打开input元素并关注该输入。

从逻辑上讲,我尝试了$('#input').focus()$('#input').first().focus()$('#input')[0].focus(),但它们无效;但当我更改标签并返回我的标签时,input元素成为焦点。有没有人见过类似的东西?或者知道如何解释这个,甚至更好,知道如何解决这个问题......

P.S。对于评论:是的,它是我页面上唯一带有id“input”的输入,是的,我的页面上有一个id为“input”的input元素,是的,聚焦元素的代码在调用后调用input已被添加到dom。

2 个答案:

答案 0 :(得分:1)

window.load = function(){$("#input").focus();}

基本上window.load是仅在加载页面的所有元素时触发的事件。

您可以在页面中的任何位置添加上述代码。最好在<script type="javascript"> </script>.内的页面的最后一页加载所有元素之后,它会将焦点设置为输入字段。

答案 1 :(得分:0)

根据我上面的评论,这就是我的建议:

setTimeout(function() {
  $("#input").focus();
}, 0);

该安排允许当前事件线程完成,包括浏览器想要执行的任何“本机”操作。然后,超时可以在上下文中运行,其中对页面状态的唯一更改将是设置焦点。