この記事の例では、JS を使用して再帰に基づいたカウントダウン効果を実現する方法について説明します。参考のために皆さんと共有してください。詳細は次のとおりです:
イベント:
//发送验证码 $('.js-sms-code').click(function(){ $(this).attr("disabled", "disabled").html("<span style='color:#666'><span id='countdown'>60</span>s 后再试</span>"); countdown(); var tel = $('#tel').val(); $.ajax({ url: "{sh::U('Home/sendSmscode')}", type:'POST', dataType:"json", data: {tel: tel}, success: function() { }, error: function() { $('.js-help-info').html("请求失败"); } }); })
コメント: ここのカウントダウン方法は美しいです。
コードを見てください:
function countdown() { // 递归 setTimeout(function() { var time = $("#countdown").text(); if (time == 1) { $('.js-sms-code').removeAttr("disabled"); $('.js-sms-code').html("发送验证码"); } else { $("#countdown").text(time - 1); countdown(); } }, 1000); }
コメント: 時間が 1 に等しくない場合は、呼び出しを続けて、時間から 1 秒を減算します。 setTimeout も非常に重要です。時間が 1 になるまで、無効を解除し、内容を「確認コードの送信」に変更します。