我想启用按钮后,一定的时间框架和再次,如果我点击这个按钮,它应该禁用这个时间框架。如何实现这。。。
null
var timer2 = "00:30";
var interval = setInterval(function() {
var timer = timer2.split(':');
//by parsing integer, I avoid all extra string processing
var minutes = parseInt(timer[0], 10);
var seconds = parseInt(timer[1], 10);
--seconds;
minutes = (seconds < 0) ? --minutes : minutes;
if (minutes < 0) clearInterval(interval);
seconds = (seconds < 0) ? 59 : seconds;
//minutes = (minutes < 10) ? minutes : minutes;
$('.countdown').html(minutes + ':' + seconds);
timer2 = minutes + ':' + seconds;
}, 500);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="countdown"></div>
<button type="button" id="demo">click</button>
null
您只需将代码包装在一个函数中,并在事件单击时和代码运行开始时调用该函数,在函数内部添加了时间检查以清除间隔并重置计时器,并使用.setAttribute()
和RemoveAttribute()
禁用/启用按钮:
null
function enableButton() {
var timer2 = "00:30";
var interval = setInterval(function() {
var timer = timer2.split(':');
//by parsing integer, I avoid all extra string processing
var minutes = parseInt(timer[0], 10);
var seconds = parseInt(timer[1], 10);
--seconds;
minutes = (seconds < 0) ? --minutes : minutes;
if (minutes < 0) clearInterval(interval);
seconds = (seconds < 0) ? 59 : seconds;
//minutes = (minutes < 10) ? minutes : minutes;
$('.countdown').html(minutes + ':' + seconds);
timer2 = minutes + ':' + seconds;
if( minutes === 0 && seconds === 0) {
clearInterval(interval);
document.getElementById('demo').removeAttribute('disabled');
}
else {
document.getElementById('demo').setAttribute('disabled', true);
}
}, 100);
}
document.getElementById('demo').addEventListener('click', function() {
enableButton();
});
enableButton();
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="countdown"></div>
<button type="button" id="demo" disabled>click</button>