2011-10-01 74 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 –