首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在函数中清除此setInterval?

如何在函数中清除此setInterval?
EN

Stack Overflow用户
提问于 2010-05-25 07:43:13
回答 4查看 178.7K关注 0票数 165

通常,我会将间隔设置为一个变量,然后像var the_int = setInterval(); clearInterval(the_int);一样清除它,但为了让我的代码正常工作,我将其放在一个匿名函数中:

代码语言:javascript
复制
function intervalTrigger() {
  setInterval(function() {
    if (timedCount >= markers.length) {
      timedCount = 0;
    }

    google.maps.event.trigger(markers[timedCount], "click");
    timedCount++;
  }, 5000);
};

intervalTrigger();

我如何清除它?我试了一试,并尝试了var test = intervalTrigger(); clearInterval(test);来确认,但这不起作用。

基本上,我需要停止触发,一旦我的谷歌地图被点击,例如。

代码语言:javascript
复制
google.maps.event.addListener(map, "click", function() {
  //stop timer
});
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-05-25 07:50:47

setInterval方法返回一个句柄,您可以使用该句柄清除间隔。如果你想让函数返回它,你只需要返回方法调用的结果:

代码语言:javascript
复制
function intervalTrigger() {
  return window.setInterval( function() {
    if (timedCount >= markers.length) {
       timedCount = 0;
    }
    google.maps.event.trigger(markers[timedCount], "click");
    timedCount++;
  }, 5000 );
};
var id = intervalTrigger();

然后清除间隔:

代码语言:javascript
复制
window.clearInterval(id);
票数 268
EN

Stack Overflow用户

发布于 2012-08-31 19:21:23

代码语言:javascript
复制
// Initiate set interval and assign it to intervalListener
var intervalListener = self.setInterval(function () {someProcess()}, 1000);
function someProcess() {
  console.log('someProcess() has been called');
  // If some condition is true clear the interval
  if (stopIntervalIsTrue) {
    window.clearInterval(intervalListener);
  }
}
票数 10
EN

Stack Overflow用户

发布于 2013-10-08 19:46:47

代码语言:javascript
复制
the_int=window.clearInterval(the_int);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2901108

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档