2012-06-21 156 views
0

我有一個append()和一個focus()它被設置爲將第一個輸入集中在附加的dom中。在jQuery append()完成後調用焦點()

IE需要時間追加,因此重點是行不通的。有沒有一種方法(比setTimeout等)設置對焦後dom完全附?

謝謝!

+4

後的代碼我的朋友。 – Joe

回答

1

append()appendTo()是同步的命令,這樣就沒有必要回調。

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

如果您正在使用多個append()語句,其實這是比簡單地追加一件大事,一旦慢得多。這也許可以解釋爲什麼你發現它在IE中需要一段時間。

+0

如果這是確定的,$(子).appendTo(父); $(子).focus();也必須工作。據我所知,同步手段命令是逐行執行的。 – totten

+0

這將是真棒,如果這實際上工作在IE中,但它只在理論上... – iGanja

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(); 
    } 
} 

通知:未測試代碼。

+0

我相信OP要求的答案,不使用'setTimeout' –

+0

我明白了,我留下評論,爲什麼我寫setTimeout那裏。 – totten

+0

我試着用setTimeout,但有時它有效,有時它不。這就是爲什麼我想知道是否有任何方法來解決這個問題。 – NunuJ

相關問題