重启Jquery setInterval并重置所有变量

时间:2012-05-05 14:09:37

标签: javascript jquery radio-button setinterval clearinterval

我有一些带有class = active

的单选按钮
  <div id="radioset1">
   <input type="radio" class="active" id="radio1" name="radio" />
   <input type="radio" class="active" id="radio2" name="radio" />
   <input type="radio" class="active" id="radio3" name="radio" />
  </div>
  <div id="counter_up">xy</div>

我想在div“counter_up”中添加一个计时器,以显示最后一次更改radiobutton的时间。

因此我添加了一些像这样的jquery代码:

  $('.active').click(function() {

    clearInterval(myInterval);
    var counter = 0;
    var myInterval = setInterval(function() {

      ++counter;
      $('#counter_up').html('Aktiv seit ' + counter + ' Sekunden');

    },1000);

 });

我的代码正在运行,所以当我第一次单击其中一个单选按钮时,一切正常。

问题是,当我点击另一个单选按钮时,var计数器不会以0开头。

我尝试使用delete var和clearInterval,但它不起作用。 有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

您应该全局设置myInterval并稍微重新构建代码,使其从0计算:

var myInterval = null;
$('.active').click(function() {

    clearInterval(myInterval);
    var counter = 0;
    var timer = function() {
        $('#counter_up').html('Aktiv seit ' + (counter++) + ' Sekunden');
    };
    timer();
    myInterval = setInterval(timer, 1000);

});​

DEMO: http://jsfiddle.net/x3Z6C/