Javascript:setinterval启动和停止功能?

时间:2016-11-03 22:36:13

标签: javascript jquery

我想为setinterval创建stop和start函数。

我一直在尝试一切,但我似乎无法做到正确!

这是我的代码:

function myStartFunction() {
var myVar = setInterval(function(){ myTimer() }, 6000);

function myTimer() {

    $.ajax({
      type:"post",
      url:"myphppage.php",
      datatype:"html",
      success:function(data)
      {  
         if(data!="")
         {



         }
      }
    });

}

}

function myStopFunction() {
    clearInterval(myVar);
}

这就是我试图打电话给他们的方式(这就是我需要打电话给他们的方式):

启动它:

myStartFunction();

并阻止它:

myStopFunction();

但这不正确,我知道。

有人可以就这个问题提出建议,因为我几乎把头发拉了出来!

提前致谢。

2 个答案:

答案 0 :(得分:2)

将myVar声明为全局(函数外部),因为在您的示例中,myStopFunction无法看到它。

var myVar;

function myStartFunction() {
    myVar = setInterval(function(){ myTimer() }, 6000);
}

function myTimer() {
    $.ajax({
      type:"post",
      url:"myphppage.php",
      datatype:"html",
      success:function(data)
      {  
         if(data!="")
         {
         }
      }
    });
}

function myStopFunction() {
    clearInterval(myVar);
}

答案 1 :(得分:2)

myVar设置为像这样的全局变量



var myVar = 0;

function myStartFunction() {
  console.log('myStartFunction');
  myVar = setInterval(function(){ myTimer() }, 6000);

  function myTimer() {
    console.log('myTimer');
    /*
    $.ajax({
      type:"post",
      url:"myphppage.php",
      datatype:"html",
      success:function(data)
      {  
         if(data!="")
         {



         }
      }
    });
    */
    
    // FOR TEST
    myStopFunction();
  }

}

function myStopFunction() {
  console.log('myStopFunction');
  clearInterval(myVar);
}


// FOR TEST
myStartFunction();