2012-12-26 85 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

相关问题