목표는 컨테이너 경계 내에서 임의의 위치에 div를 생성하고 3 초를 기다린 다음 div를 삭제하는 것입니다. 세 번 헹구고 반복하십시오. 그러나 결과는 setTimeout이 3 초를 기다리는 동안 코드가 '루프'를 계속 수행하고 3 초 후에 setTimeout 내부의 함수가 실행된다는 것입니다. 실수로 두 개의 스레드를 만들었습니까?왜 코드가 setTimeout을 건너 뛰고 나중에 추월합니까?
$(document).ready(function() {
var $bug = "<div class='bug'><div>";
var x = 0;
var timer = setInterval(function() {
if (x > 3) {
clearInterval(timer);
}
r1 = Math.floor((Math.random() * 270) + 1);
r2 = Math.floor((Math.random() * 270) + 1);
$('#container').append("<div class='bug'style='top:" + r1 + "px;left:" + r2 + "px;'></div>")
x++;
setTimeout(function() {
$('.bug').remove();
}, 3000)
}, 1000);
});
나는 그것에 대해 느낌이 들었다. 들여다 볼께 고마워. – brooklynsweb