2012-12-26 3 views
0
$(function(){ 
    $('.fadein img:gt()').hide(); 
    setInterval(function(){ 
     $('.fadein :first-child').fadeOut() 
     .next('img').fadeIn() 
     .end().appendTo('.fadein');}, 
     6800); 
}); 

버튼의 onclick을 중지하고 동일한 버튼을 클릭하면 시작됩니다. 어떤 아이디어?중지/일시 중지하고 클릭하여 다시 클릭하십시오.

+0

당신은'setInterval'을 중지하려고하거나 페이딩은? –

답변

1

이 시도 : Rikonator에

$(function(){ 
    $('.fadein img:gt()').hide(); 
    var active = true; 
    setInterval(function(){ 
     if(active) { 
     $('.fadein :first-child').fadeOut() 
      .next('img').fadeIn() 
      .end().appendTo('.fadein'); 
     } 
    }, 6800); 

    $('#buttonId').click(function(){ active = !active; }); 
}); 

감사합니다, 여기에 더 나은 해답 :

$(function(){ 
    $('.fadein img:gt()').hide(); 
    var active = true; 
    var interval = setInterval(intervalFunction, 6800); 

    $('#buttonId').click(function(){ 
     if(!active) 
      interval = setInterval(intervalFunction, 6800) 
     else 
      clearInterval(interval); 
    }); 

    function intervalFunction(){ 
     $('.fadein :first-child').fadeOut() 
      .next('img').fadeIn() 
      .end().appendTo('.fadein'); 
    } 
}); 
+0

나는 호기심있다. 멈출 때 간격을 없애지 않고 시작시 다시 설정하는 것이 좋을까요? 오랜 시간 동안 멈 추면 각 간격 후에 함수가 불필요하게 호출되지 않습니까? – Rikonator

+0

이 답변을 참조하십시오, 나는 그것이 당신이 필요하다고 생각 : http://stackoverflow.com/questions/109086/stop-setinterval-call-in-javascript – karaxuna

+0

나는 당신의 대답과 관련하여 의미. 멈춤시 간격을 지우고'click' 함수에서 시작시 다시 간격을 설정하지 않는 것이 플래그를 단순히 토글하는 것과 비교할 때 성능이 더 좋아 지겠습니까? 그대로, interval 함수가 'stopped'일 때도 호출 할 수 있도록 허용합니다.이 함수는'active'가 false 일 때 함수가 아무 것도하지 않으므로 불필요합니다. – Rikonator

관련 문제