使用外部函数暂停document.ready setInterval

时间:2016-12-15 11:55:45

标签: javascript jquery

我在document.ready中有一个计时器。像这样:

$( document ).ready(function() {

    timer = window.setInterval(myAction, 3000);

});

然后我有一个名为pauseTimer()的函数,如下所示:

function pauseTimer() {

   timer.pause();           

}

但是..为什么这不起作用?

2 个答案:

答案 0 :(得分:0)

您无法暂停间隔。您只能停止/清除间隔,并在需要时重新启动它。

var timer;

function myAction() {
  console.log('my action');
};

$( function() {
  
  $(document).on('click', '#start', function(){
    timer = window.setInterval( myAction, 3000 );
  });
  
  $(document).on('click', '#stop', function(){
    window.clearInterval( timer );
  });
  
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<button id="start">Start/Restart interval</button>
<button id="stop">Stop interval</button>

答案 1 :(得分:0)

你可以试试这个

$( document ).ready(function() {
   var timer = window.setInterval(myAction, 1000);
   function pauseTimer() {
    clearInterval(timer )          
   }
   function playTimer() {
    timer = window.setInterval(myAction, 1000);         
   }
   function myAction(){
   console.info('myAction')
   }
   $("#play").click(function(){
     playTimer()
   });
   $("#pause").click(function(){
     pauseTimer()
   });
});

HTML

<div>
  <button id="play" >play</button>
  <button id="pause"  >pause</button>
</div>