일련의 중첩 된 타이밍 루프를 작성하려고합니다. 내부 루프는 동일한 CSS 클래스로 6 개 항목을 반복하고 4 초 동안 이미지를 스왑 아웃합니다. 외부 루프는 내부 루프를 계속 반복합니다. 그래서 image1 swaps, image2 swaps ... image6 swaps, image1 swaps, image2 swaps ... 각 div에는 두 개의 이미지가 있는데 하나는 'hot'클래스이고 다른 하나는 'cold'클래스입니다. 처음에는 '뜨거운'이미지가 숨겨집니다.jQuery each and timing loops
다음 코드는 24 초 후에 모든 이미지를 한 번에 바꾼 다음 다른 작업을 수행하지 않는 것 같습니다.
var innertime = 4000; //highlight effect time in ms
var outertime = innertime * 6;
setInterval(function() {
$.each($('.eachsponsor'), function(){
$(this).find('img.cold').css("display","none");
$(this).find('img.hot').css("display", "block");
setTimeout(function(){
$(this).find('img.hot').css("display","none");
$(this).find('img.cold').css("display", "block");
}, innertime);
});
}, outertime);
누구에게도 이것이 작동하지 않는 이유에 대한 지침이 있다면 분명 감사 할 것입니다.
모든 .bind
를 사용하여 컨텍스트를 바인딩 시도하지만 코드는 여전히 당신이 원하는 것을하지 않는 생각, 난 당신이 필요하다고 생각 setTimeouts는 동시에 시작되므로 모두 동시에 종료됩니다. 루프의 현재 색인을 기반으로 기간을 수정하여 각 루프가 이전보다 오래 걸리게하십시오. –
가능한 복제본 [JavaScript 루프에 지연을 추가하려면 어떻게합니까?] (http://stackoverflow.com/questions/3583724/how-do-i-add-a-delay-in-a-javascript-loop) –