jQuery超时更改内容

时间:2011-10-01 16:33:45

标签: javascript jquery delay

我有一个问题。 我使用这段代码:

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

这不起作用,它不会改变文字。虽然,如果我做html('test')而不是在那里有一个变量,它是有效的。我也尝试过使用非jQuery JavaScript:

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

如前所述,它只有在我直接输入文本而不是变量时才有效。

但我怎么能修复它所以setTimeout也适用于变量呢?或者有任何解决办法吗?

顺便说一句,我使用的是jQuery 1.6.3。

编辑:对不起,只有标准方法(非jQuery)在尝试无变量时才能正常工作。使用jQuery,它首先进行'测试',然后延迟。

1 个答案:

答案 0 :(得分:4)

我刚写了一个函数:

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

超时包含在匿名函数中,因此可以使用多个test变量,并且不会相互干扰。您也可以命名该函数,而不是将文本包装在匿名函数中,并在脚本中调用它:funcName("test text")