好的,所以我试图将变量打印到输入框中,每个字符之间有延迟。
for(counter=0; counter < keytext.length; counter++)
{
setTimeout(function() {
$('input').val($('input').val() + keytext[counter]);
},200);
}
现在counter和keytext在外部作用域中声明,当我将val设置为keytext [1]时,我得到正确的值。但是我得到了:undefinedundefinedundefinedundefined 作为输出。
另一件奇怪的事情就是当我输出计数器时,每次循环时都会打印出keytext的实际长度(在我的情况下是7)。而另一件奇怪的事情是它不会在每个角色之间延迟。它最初等待并立即打印出整个字符串。
这是我的for循环吗?我一直看得很远,但空手而归,但我知道你们可以帮助我:)。
编辑:
感谢Qantas 94 Heavy在这里链接一个明确的解释:JavaScript closure inside loops – simple practical example
现在我将keytext和counter传递给当前范围之外的函数,正确打印值。但是,setTimeout仍未达到我想要的效果。从关键字文字打印的字符仍然一次显示,而不是一次显示200ms之间的延迟。
有什么想法吗?
编辑2:
谢谢PSL!现在所有人都在使用您的代码。 /结束