버튼을 클릭하면 6 개가 무작위로 선택되고 배경색이 검정색으로 변경된 12 개의 색이 지정된 사각형이 있습니다.루프 외부에서 코드가 처음 실행됩니다.
사각형을 모두 색이 동시에 바뀌 었습니다. 문제를 해결했지만 setTimeout 함수를 추가 할 때까지 하나의 루프가 발생했습니다. 즉, 루프 외부의 코드가 루프 이전에 실행 중이므로 재설정 기능과 경고가 호출됩니다.
for (var i = 0; i < 6;i++)
{
setTimeout(function()
{
var rand = arr[Math.floor(Math.random() * arr.length)];
var square = document.getElementById('square' + rand);
square.style.background="black";
},1000 * i);
}
Reset()
alert("Reset function")
나는 setTimeout 함수가 어떻게 든이 문제를 일으킨다는 것을 알았습니다. 이것을 해결할 방법이 있습니까?
감사합니다.
이 타임 아웃의 목적되지 않습니다? –
진지하게, 당신이 묘사하는 것이 정확히 코드 또는 함수의 실행을 지연시키는 타임 아웃의 목적이기 때문에 나는 당신의 문제를 이해하지 못합니다. –
그래요. 내가 말한 것처럼 ans가 그 점에서 올바르게 작동하고 있지만, 루프 외부의 코드가 먼저 실행됩니다. Reset 함수는 루프가 실행될 때까지 호출되지 않습니다. – user3047072