在嵌套调用中使用clearInterval

时间:2014-12-04 16:22:27

标签: javascript jquery html css3

我有一个创建图表的JS。首先渲染图形,并按如下所示每3秒更新一次。

我想在单击按钮时使用clearInterval或其他方式停止执行脚本。我怎样才能做到这一点?

我理解clearInterval是如何工作的,但是,我无法弄清楚如何根据事件控制嵌套的setInterval。

免责声明:我是JS等人的新手。

mystats = function () {
  this.render = function() {
    var graph = vendorgraph();
    graph.render();

    setInterval( function() {
      jsonupdate.addData(seriesData,url);
      graph.update();
    }, 3000 );
  }
}

var mytrends = new mystats(); 
mytrends.render(); 

2 个答案:

答案 0 :(得分:0)

setInterval返回一个值,您可以使用该值稍后停止它,也可以将其存储在某个间隔数组中。

var intervalArray = [];

mystats = function () {
  this.render = function() {
    var graph = vendorgraph();
    graph.render();

    var interval = setInterval( function() {
      jsonupdate.addData(seriesData,url);
      graph.update();
    }, 3000 );
    intervalArray.push(interval);
  }
}    

// later on
var intervalVariable = intervalArray[0];
clearInterval(intervalVariable)

答案 1 :(得分:0)

我从扎克的其他帖子中得到了一个暗示并以这种方式解决了

mystats = function () {
  var interval;
  this.render = function() {
    var graph = vendorgraph();
    graph.render();

    interval = setInterval( function() {
      jsonupdate.addData(seriesData,url);
      graph.update();
    }, 3000 );
  }
  this.stoprender = function() {
      clearInterval(interval);
  }
}

var mytrends = new mystats(); 
mytrends.render(); 
on my event {
   mytrends.stoprender();
}