我遇到使用setInterval函数重置已用时间的问题。当按下开始并通过单击按钮停止计时器时,计时器运行良好。但是当我再次单击开始按钮时,计时器将恢复而不是重置。根据我的研究,clearInterval会重置但不起作用。
这是我的代码示例。 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).'
}
我希望有人可以提供帮助。最诚挚的问候!
答案 0 :(得分:0)
是的,Rayon正确评论,你必须重新开始时间。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).'
}