IE8不允许jQuery将焦点放在文本框上

Dav*_*Dev 4 jquery focus internet-explorer-8

我有jQuery生成一个弹出窗口,如下所述:

http://www.jsfiddle.net/sLjfx/4/

问题是以下行:

$('#txtValuation').focus();
Run Code Online (Sandbox Code Playgroud)

似乎不想在IE8中工作.弹出窗口会加载,但是文本框没有焦点,在Chrome中,盒子确实有焦点..是否有任何解决方法?

T.J*_*der 8

我没有IE8方便,但试试这个:我启动了我的Windows VM,这有效:http://www.jsfiddle.net/n25HE/我所做的就是将focus函数包装在一个函数中并在调用后10ms调用它你的事件处理程序完成了,像这样:

setTimeout(function() {
    $('#txtValuation').focus();
}, 10);
Run Code Online (Sandbox Code Playgroud)

这使IE有时间实际呈现内容并为文本输入创建OS控件.在底层控件存在之前,IE无法关注事物.