javascript - jQuery .focus() 不起作用

标签 javascript jquery html internet-explorer firefox

<分区>

我的目标是在使用 jQuery 加载页面后聚焦输入字段。所以我在这个例子中尝试了:

HTML:

<form>
   <input type="text" tabindex="1"><br>
   <input type="text" tabindex="2"><br>
   <input type="text" tabindex="3"><br>
   <input type="text" tabindex="4"><br>
</form>

JavaScript:

$(function () {
    $("*[tabindex='3']").focus();
});

但这不起作用(在 FireFox 24.0 中测试),尽管在 StackOverflow 上的其他几个问题中建议使用这种方式。

请随意尝试这个 LIVE DEMO (有时您需要在第一个页面加载后单击“运行”)。

编辑:

将示例更改为关注第三个元素,因为默认情况下关注第一个元素。所以请尊重,如果您的解决方案适用于第一个元素,它可能不适用于另一个元素!

示例不适用于 FF 24.0/Win 7 和 IE 10/Win 7

编辑 2:

正如 ghusse 所指出的,该示例在 fiddle 上下文之外工作:DEMO 所以问题是;什么会导致 .focus() 函数不起作用?

最佳答案

这应该对你有用:

setTimeout(function(){
    $("*[tabindex='3']").focus();
},  1);

以最小的延迟使用 setTimeout。

关于javascript - jQuery .focus() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19293468/

相关文章:

javascript - 如何检索 javascript 文件中的所有函数名称

css - 像聊天框 CSS 一样的 Flexbox

html - 使用左/右对齐方式垂直对齐两个图像

javascript - 如何允许 document.getElementById 找不到 ID?

javascript - Rails : Stylesheets/Javascripts work in Dev, 不是产品

javascript - 危险的刷卡器2 : Changing CSS/Style of Arrows on First & Last Slide?

javascript - 如何将 HTML 表格导出到 Chrome 和 IE 支持的 Excel?

javascript - 在运行 jQuery 时使用 eval() 在 for() 中创建动态变量的替代方法?

javascript - JQuery .addclass 到找到文本的表 <tr> 元素

javascript - jQuery - 将变量传递给点击功能