天天看点

clearInterval()取消setInterval()执行

发送短信验证码是一个非常常见的功能,

现在的需求是:

用户点击“获取验证码”的时候,请求后端接口,发送短信验证码,

按钮置灰不可点,变成“重发(xx s)”, 40s后,出现“发送语音验证码”按钮,

60s后,“重发”按钮再变成“获取验证码”

肯定是要用 setInterval() 了,但是这里边就涉及到使用 clearInterval() 清除周期性执行,

见示例:

<a class="c-right-btn btn-send-captcha">获取验证码</a>
	            	<a class="c-right-btn btn-send-captcha-disable" style="display:none;"></a>
           
window._timer = 60;
		var _send = setInterval(function(){
			console.log(_timer);
			if(_timer > 0){
				$(".btn-send-captcha").hide();
				$(".btn-send-captcha-disable").show().text("重发(" + _timer + "s)");
				_timer --;
			}
			if(_timer == 40){
				$(".btn-send-voice").show();
			}
			if(_timer <= 0){
				$(".btn-send-captcha-disable").text("").hide();
				$(".btn-send-captcha").show();
				window.clearInterval(_send);
				_timer = 60;
				return false;
			}
		}, 1000);
           

继续阅读