2014-09-27 6 views
0
여기

내가 startSlider 기능을 제거하고몇 초마다 jQuery에서 몇 번의 실행을 수행합니까?

setTimeout(function(){ 
var startSlide = $(".slider li:first"); 
     var nextSlide = $(".active").next("li"); 
     $(".active").removeClass(); 
     $(".inactive").removeClass(); 
     if(nextSlide.html() == null) 
     {nextSlide = startSlide;} 
     nextSlide.addClass("active"); 
     nextSlide.siblings().addClass("inactive"); 
    } 
, 4000); 

를 사용하고자하지만, 어떤 제안을 작동하지 않습니다

$(document).ready(function() { 
    var startSlider = function() { 
     var startSlide = $(".slider li:first"); 
     var nextSlide = $(".active").next("li"); 
     $(".active").removeClass(); 
     $(".inactive").removeClass(); 
     if(nextSlide.html() == null) 
     {nextSlide = startSlide;} 
     nextSlide.addClass("active"); 
     nextSlide.siblings().addClass("inactive"); 
     setTimeout(startSlider, 4000); 
    }; 
    setTimeout(startSlider, 100); 
}); 

을 대체 할 코드를 무엇입니까?

+0

"작동하지 않음"을 정의하면 오류가 발생합니까? 그것은 예기치 않은 일을합니까? –

+0

콘솔에 오류가 있습니까? – paolo

+0

슬라이드가 startSlider를 사용할 때처럼 사라지지 않습니다. –

답변

1

첫 번째 코드에서는 재귀 함수로 작동합니다. 하지만 두 번째 코드에서는 setTimeout 함수 대신 setInterval을 사용하여 매 4 초마다 실행해야합니다.

setInterval(function(){ // consider using setInterval instead of setTimeout 
var startSlide = $(".slider li:first"); 
     var nextSlide = $(".active").next("li"); 
     $(".active").removeClass(); 
     $(".inactive").removeClass(); 
     if(nextSlide.html() == null) 
     {nextSlide = startSlide;} 
     nextSlide.addClass("active"); 
     nextSlide.siblings().addClass("inactive"); 
    } 
, 4000); 
+0

지금 작동 중입니다. 그러나 처음 페이지를로드 할 때 슬라이드를 변경하는 데 약간 시간이 걸립니다. –

+0

그 이유는 문서 로딩 시간 때문입니다 ... –

+0

@RajatPaul이 이전 질문과 관련이 있다면 http://stackoverflow.com/q/26075248/1905949,'$ ("슬라이더 li :) " – ekad

관련 문제