我有一个问题。 我使用这段代码:
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,它首先进行'测试',然后延迟。
答案 0 :(得分:4)
我刚写了一个函数:
(function(text){
setTimeout(function(){
document.getElementById("tip").innerHTML = text;
}, 1000);
})(text)
超时包含在匿名函数中,因此可以使用多个test
变量,并且不会相互干扰。您也可以命名该函数,而不是将文本包装在匿名函数中,并在脚本中调用它:funcName("test text")
。