本文写一下自己在用的发送验证码按钮点击读秒效果

思路大致为一个盒子里面包着两个按钮,点击获取验证码按钮后,该按钮隐藏,显示读秒按钮显示,这样就很简单的解决了读秒过程中按钮点击触发事件问题,读秒完成后,读秒按钮隐藏,点击获取验证码按钮显示,又可以点击了,具体实现如下:

dom结构如下:

<div class="btnBox">
    <a id="moBtn" href="javascript:;" onclick="sendMsgCode()">免费获取验证码</a>
    <a id="secondShow" href="javascript:;"></a>
</div>

js代码如下:

var countdown=10;  // 时长 s
// 获取验证码按钮点击事件
function sendMsgCode() {
        $("#secondShow").css('display','block');
        $("#moBtn").css('display','none');
        $("#secondShow").html('重新发送('+countdown+'s)');
        var timer = setInterval(function () {
            if (countdown == 0) {
                clearInterval(timer);
                $("#secondShow").css('display','none');
                $("#moBtn").css('display','block');
                countdown = 10;
                console.log(countdown);
            }
            $("#secondShow").html('重新发送('+(countdown-1)+'s)');
            countdown--;
        }, 1000);
};

此处仅贴了读秒相关的代码,具体的业务逻辑还请自行补充,如有表述不准确之处,欢迎指正,欢迎补充,感谢阅读。