2011-10-01 77 views
0

我遇到問題。 我用這個代碼:jQuery超時更改內容

var test='test'; 
$('#tip').delay(1000).html(test); 

那也不行,它不會更改文本。雖然,如果我做HTML('測試'),而不是在那裏有一個變量,它會起作用。我已經使用非jQuery的JavaScript的也試過:

var test='test'; 
setTimeout("document.getElementById('tip').innerHTML=text", 1000); 

如前所述,它只能如果我直接輸入文本,而不是一個變量。

但是,我該如何解決這個問題setTimeout也適用於變量呢?或者是否有解決方法?

順便說一句,我使用jQuery 1.6.3。

編輯:對不起,只有標準方法(非jQuery)的工作原理當試圖做到沒有變量。有了jQuery,它首先會進行「測試」,並延遲到來。

回答

4

我剛寫了一個功能:

(function(text){ 
    setTimeout(function(){ 
     document.getElementById("tip").innerHTML = text; 
    }, 1000); 
})(text) 

超時被包裹的匿名函數內部,使得多個test變量可以使用,不互相干擾。除了將文本包裝在匿名函數中,您還可以命名該函數,並從腳本中調用它:funcName("test text")

+0

謝謝!這解決了我的問題 – SnackerSWE

+1

不客氣。如果代表不存在,我今天會得到1000代表O_o –