0

setTimeout と clearTimeout がありますが、setTimeout は正常に動作していますが、clearTimeout は動作していません。誰か助けてもらえますか?

コード:

<script type="text/javascript">
  var i = 0;
  var status = setTimeout(function () {
    if (i <= 2) {
      metrics_status();
      i++;
    } else {
      clearTimeout(status);
    };
  }, 3000);
</script>
<div id="ReloadMetrics"></div>
4

5 に答える 5

0

setInterval代わりに必要だと思います。これは、を呼び出すまで、指定された間隔で関数を呼び出しますclearInterval

于 2013-02-08T04:13:10.363 に答える
0

setTimeout再帰的である場合は1回だけ呼び出さclearTimeout れる関数を呼び出す必要があります関数を複数回呼び出すには、を使用してからsetInterval呼び出すことができますclearTimeout

setTimeout and clearTimeouthttp://www.w3schools.com/jsref/met_win_cleartimeout.aspです。

タイミング関数http://www.w3schools.com/js/js_timing.asp

于 2013-02-08T04:17:30.960 に答える
0

これであなたの目的は果たせると思います。チェックしてください

<script type="text/javascript">
  var i = 0;
  var status;
  status = setTimeout(Fun, 3000);
  function Fun() {
    if (i <= 2) {
      metrics_status();
      i++;
      status = setTimeout(Fun, 3000);

    } else {
      //clearTimeout(status);
    };
  }
</script>
<div id="ReloadMetrics"></div>
于 2013-02-08T04:17:43.260 に答える
0

与えられた例を見てくださいhttp://jsfiddle.net/jogesh_pi/qTGPT/

<div id="status"></div>

JS:

var i = 0;
var status = setInterval(function() {
    if (i <= 5) {
        //metrics_status();
        document.getElementById('status').innerHTML = i;
    } else {
      document.getElementById('status').innerHTML = "done";
      _clearTime();
    }
    i++;
  }, 1000);

function _clearTime(){
    return clearInterval(status);
}

これがあなたの必要に応じて機能することを願っています。

于 2013-02-08T04:24:02.467 に答える
0

このようclearTimeoutに外で使用する必要がありますsetTimeout

var status;
if(status){ 
   clearTimeout(status);
}
status = setTimeout(function () { }

例1 例 2

于 2013-02-08T04:08:25.933 に答える