在jquery-ui dialog-with-tabs加载期间在文本字段上调用.focus()会中断对话框呈现

时间:2009-08-26 19:14:22

标签: jquery jquery-ui

如果我使用

setTimeout(function{$('#myElement').focus()}, 10)`

在加载包含选项卡的jquery-ui对话框期间,选项卡的呈现会中断!具体来说,它们的背景图像无法显示,这使它们看起来像垃圾。仅当我在文档上设置超时时才会发生这种情况,以便在弹出窗口中聚焦第一个文本输入。

这种行为很奇怪。想法?

注意:这只发生在firefox和opera中。

3 个答案:

答案 0 :(得分:1)

这对我来说就像是经典的并发问题。你正在改变代码,而jQuery正在研究它,这可能会破坏代码中的一些假设,即DOM的状态将保持稳定。

如果要在加载对话框后聚焦文本字段,正确的方法是将focus()放在回调方法中。

另外,你真的打算等待10 毫秒然后关注()吗?

答案 1 :(得分:0)

你有任何错误吗?

当你调用函数时,你确定元素在dom中是可见的,因此是可聚焦的。

增加超时值是否会修复它?

答案 2 :(得分:0)

如果您直接复制代码,可能就是您在焦点后忘记了()。

setTimeout($('#myElement').focus(), 10);