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

我希望停止這onclick的按鈕,並單擊同一按鈕啓動它。有任何想法嗎?停止/暫停並重新啓動它onclick

+0

你們是不是要停止'setInterval'還是衰落? –

回答

1

試試這個:

$(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; }); 
}); 

感謝Rikonator,這裏是最好的答案:

$(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'功能開始時不會清除停止時間間隔並將其重新設置爲更好的性能?實際上,即使在「停止」時也允許調用間隔函數,這是不必要的,因爲當「active」爲false時函數不起作用。 – Rikonator

相關問題