setInterval Javascript MVC2

时间:2012-03-13 03:13:05

标签: javascript asp.net-mvc

我正在尝试使用setInterval来计算剩余时间,这是我的脚本:

 var intervalID;
        function StartTimer() {
            var intervalID = setInterval(function () {
                var settimmer = 100; //  $('#timeleft').val();
                var seconds = 0;
                seconds++;
                if (seconds >= 60) {
                    settimmer--;
                    seconds = 0;
                    $('#timeleft').val(settimmer);
                }
            }, 1000);
        }
        function StopTimer() {
            clearInterval(intervalID);
        }

<input type="text" size="8" id="timeleft" name="timeleft" value="100" />
    <button onclick="StartTimer();">
        start</button>
    <button onclick="StopTimer();">
        Stop</button>

我不工作,但是当我使用以下脚本时,它可以工作,但不知道如何阻止它:

  var settimmer = 100;
   var seconds = 0;
    $(function () {

            window.setInterval(function () {
                seconds++;
                if (seconds >= 60) {
                    settimmer--;
                    seconds = 0;
                    $('#timeleft').val(settimmer);
                }

            }, 1000);

    });

提前致谢。

2 个答案:

答案 0 :(得分:0)

您正在intervalID函数中重新声明StartTimer(),删除var

答案 1 :(得分:0)

问题是变量的范围。您在函数StartTimer中重新声明了intervalID,它将覆盖全局变量&#39; intervalID&#39;并且仅用于此功能。实际上,变量&#39; intervalID&#39;外面没有价值。 因此,当您使用clearInterval(intervalID)时,它当然不起作用。