2014-02-12 28 views
-3

我的代码是这样的:setInterval的,不能把它分配给一个变量

$(

    function(){ 
     $("#btn").click(
     function() 
     { 
      var check_timer = setInterval(
       function(){ 
        console.log("here"); 
        ... 
       }, 
       1000 
      ); 

      setTimeout(
       function(){ 
        console.log("set timeout"); 
       }, 
       5000 
      ); 

      clearInterval(check_timer); 
     }); 
    } 

) 

所以这里的问题,该脚本将不执行我在setInterval函数中定义的功能,除非我删除在“VAR check_timer”,它工作正常是这样的:

setInterval(
    function(){ 
     console.log("here"); 
     ... 
    }, 
    1000 
); 

,因为我想停下来一段时间后,我用clearInterval函数的工作,所以我需要获得通过的setInterval启动计时器,如何解决这个?

+5

您立即清除你设置的时间间隔... –

+0

当你要删除的间隔?你试图做的事情并不清楚。 –

+0

它不起作用,因为您在运行之前清除间隔。将clearinterval放入超时或回调。 –

回答

2

它不执行该功能,因为您清除运行前的间隔。当你把一个setTimeout代码不是“暂停”。代码将继续执行,超时的推移刚过将执行并在代码setTimeout

尝试:

$(
    function(){ 
     $("#btn").click(
     function() 
     { 
      var check_timer = setInterval(
       function(){ 
        console.log("here"); 
        ... 
       }, 
       1000 
      ); 

      /*...*/ 

      // instead of directly clearing the timeout 
      setTimeout(
       function(){ 
        // clear it after a certain amount of time 
        clearInterval(check_timer); 
       }, 
       5000 
      ); 

     }); 
    } 
) 
相关问题