0

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」にタイマーを追加したいと思います。

したがって、次のようなjqueryコードを追加しました。

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

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

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

    },1000);

 });

私のコードは機能しているので、最初にラジオボタンの1つをクリックすると、すべてが正常に機能します。

問題は、別のラジオボタンをクリックすると、変数カウンターが0で始まらないことです。

delete varとclearIntervalを使用しようとしましたが、機能しません。誰かが助けることができますか?

4

1 に答える 1

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);

});​

デモ:http: //jsfiddle.net/x3Z6C/

于 2012-05-05T14:17:19.513 に答える