首页 > 解决方案 > 如何在一次运行后停止 setTimeout?

问题描述

我有这个循环倒计时,但我希望它从 7 运行到 4 并保持在 4 而不循环。所以 4 将保留并可见,之后不会发生任何事情。

<div id="dcontent" style="width:100%; background-color: #E2E2FC; padding-left: 5px"></div>

<script type="text/javascript">
  var mycontent = new Array()
  mycontent[0] = 'Jetzt schnell sein! Nur noch 7 Artikel verfügbar!'
  mycontent[1] = 'Jetzt schnell sein! Nur noch 6 Artikel verfügbar!'
  mycontent[2] = 'Jetzt schnell sein! Nur noch 5 Artikel verfügbar!'
  mycontent[3] = 'Jetzt schnell sein! Nur noch 4 Artikel verfügbar!'

  var i = 0

  function altercontent() {
    dcontent.innerHTML = mycontent[i];
    i = (i == mycontent.length - 1) ? 0 : i + 1
    setTimeout("altercontent()", 1000)
  }

  window.onload = altercontent
</script>

标签: javascript

解决方案


使用类似的东西

var yourInterval = setInterval(fn,time);

并在某些条件下运行以下语句,例如 if(i<4)

清除间隔(您的间隔);

上面会在遇到 clearInterval(); 时停止它。

在此处阅读有关它的更多信息Window clearInterval() 方法


推荐阅读