【发布时间】:2014-10-12 09:04:03
【问题描述】:
这样做的总体目标是为某些文本实现类似打字的动画。
我在 FOR 循环中使用 setTimeout 循环遍历字符串的每个字母并将其添加到 DOM,每个字母之间存在延迟。
我的 HTML--
<h1 id="name">Hello World!</h1>
我的 Javascript--
$(document).ready(function(){
var typeText = $("#name").html();
var textLength = typeText.length;
$("#name").empty();
for(i=0;i<textLength;i++) {
(function(i){
console.log("first function being fired!");
setTimeout(function(i){
console.log("setTimeout function being fired!");
console.log(i);
var letter = typeText.substring(i,i+1);
console.log(letter);
$("#name").append(letter);
},5000);
})();
}
});
我没有收到任何错误,但我首先记录了 12 个“第一个函数被触发!”帐户,延迟 5 秒,然后是 12 个帐户:
setTimeout function being fired<br />
undefined<br />
[line-break]
我认为我遗漏了 FOR 循环的基本部分,或者不完全了解函数在其中的处理方式。
【问题讨论】:
标签: javascript jquery for-loop setinterval