我需要帮助,我使用进度条为倒数计时器制作一个javascript函数,这里是代码
function progress(timeleft, timetotal, $element) {
var progressBarWidth = timeleft * $element.width() / timetotal;
$element.find('div').animate({ width: progressBarWidth }, timeleft == timetotal ? 0 : 1000, 'linear').html('');
$('#time_wrap').html('<span id="timer">'+timeleft+'</span>');
if(timeleft > 0) {
setTimeout(function() {
progress(timeleft - 1, timetotal, $element);
}, 1000);
}else{
setTimeout(function() {
submitdata();
}, 1000);
}
};
我需要使用onclick事件停止计时器,例如:<input type="button" onclick="stoptimer();">
如何使用stoptimer()函数停止计时器?
答案 0 :(得分:2)
您要找的是clearTimeout。
您可以将代码修改为:
var timer = null;
function progress(timeleft, timetotal, $element) {
var progressBarWidth = timeleft * $element.width() / timetotal;
$element.find('div').animate({ width: progressBarWidth }, timeleft == timetotal ? 0 : 1000, 'linear').html('');
$('#time_wrap').html('<span id="timer">'+timeleft+'</span>');
if(timeleft > 0) {
timer = setTimeout(function() {
progress(timeleft - 1, timetotal, $element);
}, 1000);
} else{
timer = setTimeout(function() {
submitdata();
}, 1000);
}
// You can use this to bind event only after the timer is set.
// $('#stop-btn').on('click', function() {
// clearTimeout(timer);
// });
};
function stoptimer() {
clearTimeout(timer);
}