배열에 split()
의 문자열이 포함되어 있고 shift()
메서드를 사용하여 한 번에 한 글자를 div
에 인쇄하는 변수가 있습니다. setTimeout
을 사용하여 프로세스를 반복하고 전체 문자열을 인쇄합니다. 내가 겪고있는 문제는 함수가 문자열의 다음 문자로 이동하지 않고 첫 번째 문자를 반복해서 출력한다는 것입니다. 매개 변수가있는 setTimeout을 사용하여 알 수있는 유일한 방법은 아무것도 사용하지 않은 것 같습니다.setTimeout() 문제 반복 작업
여기서 코드의 문제점은 무엇입니까?
<div id='ltrType'></div>
<script>
function buildWord(str) {
var arr = str.split('');
if(arr.length > 0) {
document.getElementById('ltrType').innerHTML += arr.shift();
} else {
clearTimeout(timer);
}
//I've tried setTimeoout like this
timer = setTimeout(buildWord,100,str);
//and like this
timer = setTimeout(function(){ buildWord(str); })
}
buildWord('this is another string blah blah blah');
'str'이 (가) 호출에서 호출로 변경되지 않습니다. 항상 같은 문자열입니다. – crush
새로 고침 할 때마다 처음부터 시작됩니다. –