Javascript 按钮倒计时启用
我在一个有倒计时功能的模式中有一个按钮,一开始它是禁用的(是真的),但倒计时后它会变为禁用 如果我让按钮倒计时一直到最后,然后我再次测试它(关闭我的模式并再次打开),它会再次开始倒计时,到目前为止它工作正常 但它有一个奇怪的错误 如果在倒计时的中间,我关闭模态,然后再打开它,我的倒计时重新启动,但它会一直到倒计时结束,它不通过所有的数字。< /P> 这是我的密码: html:Javascript 按钮倒计时启用,javascript,angularjs,angularjs-scope,Javascript,Angularjs,Angularjs Scope,我在一个有倒计时功能的模式中有一个按钮,一开始它是禁用的(是真的),但倒计时后它会变为禁用 如果我让按钮倒计时一直到最后,然后我再次测试它(关闭我的模式并再次打开),它会再次开始倒计时,到目前为止它工作正常 但它有一个奇怪的错误 如果在倒计时的中间,我关闭模态,然后再打开它,我的倒计时重新启动,但它会一直到倒计时结束,它不通过所有的数字。< /P> 这是我的密码: html: 等待{{wizardCtrl.message}}秒 控制器: vm.unblock = true; functio
等待{{wizardCtrl.message}}秒
控制器:
vm.unblock = true;
function unblockButton() {
debugger;
vm.c = 5;
vm.message = vm.c;
var timer = $interval(function() {
vm.message = vm.c;
vm.c--;
if(vm.c<0) {
$interval.cancel(timer);
vm.unblock = false;
angular.element('#btn-unblock').text("Desbloquear e Ver");
vm.btn = "btn-green";
}
}, 1000);
}
vm.unblock=true;
函数按钮(){
调试器;
vm.c=5;
vm.message=vm.c;
变量计时器=$interval(函数(){
vm.message=vm.c;
vm.c--;
如果(vm.c关闭模式时,还应中止间隔。再次打开模式时,间隔仍在运行,因此会影响第二个模式。或者,检查间隔是否已设置,并在打开前清除间隔。关闭模式时,还应中止间隔。再次打开模式时,间隔仍在运行,因此,它将影响第二种模式。或者,检查是否设置了间隔,并在打开之前清除间隔。启动计时器之前,需要重置计时器和按钮
vm.unblock = true;
// Make your timer variable global
var timer = null;
function unblockButton() {
debugger;
vm.c = 5;
vm.message = vm.c;
// Clear old timer
$interval.cancel(timer);
// Block the button
vm.unblock = true; // Check this part of code...
vm.btn = "btn-red"; // This too...
// Start new timer
timer = $interval(function() {
vm.message = vm.c;
vm.c--;
if(vm.c<0) {
$interval.cancel(timer);
vm.unblock = false;
angular.element('#btn-unblock').text("Desbloquear e Ver");
vm.btn = "btn-green";
}
}, 1000);
}
vm.unblock=true;
//使您的计时器变量为全局变量
var定时器=null;
函数按钮(){
调试器;
vm.c=5;
vm.message=vm.c;
//清白的老家伙
$interval.cancel(计时器);
//阻止按钮
vm.unblock=true;//检查这部分代码。。。
vm.btn=“btn red”;//这也是。。。
//启动新计时器
计时器=$interval(函数(){
vm.message=vm.c;
vm.c--;
如果(vm.c您需要在启动计时器之前重置计时器和按钮
vm.unblock = true;
// Make your timer variable global
var timer = null;
function unblockButton() {
debugger;
vm.c = 5;
vm.message = vm.c;
// Clear old timer
$interval.cancel(timer);
// Block the button
vm.unblock = true; // Check this part of code...
vm.btn = "btn-red"; // This too...
// Start new timer
timer = $interval(function() {
vm.message = vm.c;
vm.c--;
if(vm.c<0) {
$interval.cancel(timer);
vm.unblock = false;
angular.element('#btn-unblock').text("Desbloquear e Ver");
vm.btn = "btn-green";
}
}, 1000);
}
vm.unblock=true;
//使您的计时器变量为全局变量
var定时器=null;
函数按钮(){
调试器;
vm.c=5;
vm.message=vm.c;
//清白的老家伙
$interval.cancel(计时器);
//阻止按钮
vm.unblock=true;//检查这部分代码。。。
vm.btn=“btn red”;//这也是。。。
//启动新计时器
计时器=$interval(函数(){
vm.message=vm.c;
vm.c--;
如果(vm.cYou)键入“开始时它被禁用(为true),但在倒计时后它将变为禁用。
”是否属于那些被禁用的中的一个应该是启用的?您键入“开始时它被禁用(为true),但倒计时后它将变为禁用。
”其中一个被禁用
应该是启用
?您的右侧,在我的关闭按钮模式中,我将其设置为$interval.cancel(vm.timer);您的右侧,在我的关闭按钮模式中,我将其设置为$interval.cancel(vm.timer);