Jquery焦点最初不在chrome中工作

时间:2017-05-16 18:43:34

标签: jquery google-chrome

我正在尝试将网页的焦点设置为文档输入上的文本输入,如下所示:

$(document).ready(function() {
    $("#company_search").focus();
})

我也试过以同样的方式使用setTimeout:

setTimeout(function(){
    $("#company_search").focus();
}, 5000);

但无论我做什么,Chrome(桌面和移动设备)最初都会关注输入,然后在大约一秒钟内失去焦点。我实际上可以看到它获得并失去焦点,我甚至可以在有焦点时输入文本框。

所有其他浏览器都有效。

无论我在页面中关注什么(按钮,div,其他输入),它都会做同样的事情。

也许更奇怪的是,在我与页面交互后(单击按钮,隐藏/显示某些内容)焦点似乎工作正常。我可以专注于任何事情,并保持专注。

有关正在发生的事情的任何想法?提前谢谢。

2 个答案:

答案 0 :(得分:0)

准备好dom之后再使用setTimeout。

$(document).ready(function() {
setTimeout(function(){
    $("#company_search").focus();
}, 0);
})

答案 1 :(得分:0)

我明白了。我的html中有一些iframe,最初是隐藏的,没有设置src属性。 src属性稍后设置。所以src属性默认为chrome中的当前页面。所以dom中的每个元素都有多个实例。