2016-05-04 18 views
0

setInterval関数を使用して経過時間をリセットする問題があります。開始ボタンを押すと、タイマーは正常に動作し、ボタンをクリックすると停止します。しかし、スタートボタンをもう一度クリックすると、リセットの代わりにタイマーが再開します。私の研究に基づいて、clearIntervalはそれをリセットしますが、動作しません。Javascript:setIntervalボタンのクリックで「リセット」ではなく「再開」

ここに私のコードのサンプルがあります。 https://jsfiddle.net/4165y1x4/16/

HTML

<button id="get_data">Fetch Data</button> 
<button id="stop1">Stop</button> 
<span id="run-time"></span> 
<br> 

Javascriptを

var start = new Date().getTime(),elapsed = '0.0'; 

var s , url,i=0, time; 
$("#get_data").click(function() { 
    s = setInterval(function() { 
    $("#run-time").html(tym()); 

    }, 100); 

}); 

$('#stop1').click(function() { 
    clearInterval(s); 
    time = null; 
}); 


function tym() { 
    $("#run-time").html(''); 
    time = new Date().getTime() - start; 
    var min = (time/1000/60) << 0; 
    var sec = (time/1000) % 60; 

    if (sec < 10) { 
    sec = '0' + sec; 
    } 

    return elapsed = 'Elapsed Time: ' + min + ':' + sec + ' (min:sec.mil).' 
} 

私は、誰かが助けることができる願っています。宜しくお願いします!

+1

'新しいDate()。getTime()は' '現在の時刻の時間stamp'を返します。.. – Rayon

答えて

0

よろしくお願いします。レイヨンのコメントで正しく時間を再開する必要があります。あなたが間隔を再開するたびJsFiddle

var start, 
    elapsed = '0.0'; 

var s , url,i=0, time; 
$("#get_data").click(function() { 
    start = new Date().getTime(); 
    s = setInterval(function() { 
    $("#run-time").html(tym()); 

    }, 100); 
    // getData(); 

}); 

$('#stop1').click(function() { 
    clearInterval(s); 
    time = null; 
}); 


function tym() { 
    $("#run-time").html(''); 
    time = new Date().getTime() - start; 
    var min = (time/1000/60) << 0; 
    var sec = (time/1000) % 60; 

    if (sec < 10) { 
    sec = '0' + sec; 
    } 

    return elapsed = 'Elapsed Time: ' + min + ':' + sec + ' (min:sec.mil).' 
} 
+0

は、それが働いたありがとうございます。 – graceth

関連する問題