在jQuery append()完成后调用focus()

时间:2012-06-21 18:58:50

标签: javascript jquery

我有一个append()和一个focus(),设置为将第一个输入的焦点放在附加的dom中。

IE正在花时间追加,所以焦点不起作用。 setTimeout完全附加后,是否有办法(dom除外)设置焦点?

谢谢!

2 个答案:

答案 0 :(得分:1)

append()appendTo()是同步命令,因此不需要回调。

$(child).appendTo(parent)
        .focus();

如果您使用多个append()语句,这实际上要比简单地追加一次大的语句慢得多。这可以解释为什么你发现它在IE中需要一段时间。

答案 1 :(得分:0)

var oldHtml, el, toBeAppended;
function appendAndFocus()
{
   oldHtml = el.html();
   el.append(toBeAppended);
   appnedAndFocus_h()
}
function appnedAndFocus_h()
{
   if(el.html()==oldHtml) //if(el==oldHtml) - CORRECTED.
   {
      setTimeout(appendAndFocus_h, 10); //just for browser to be taken a breath.
      return;
   }
   else
   {
      el.focus();
   } 
}

注意:未经过测试的代码。