>  기사  >  웹 프론트엔드  >  재귀를 기반으로 카운트다운 효과를 구현하는 JS 메서드

재귀를 기반으로 카운트다운 효과를 구현하는 JS 메서드

高洛峰
高洛峰원래의
2016-12-05 11:12:121794검색

이 기사의 예에서는 JS가 재귀를 기반으로 카운트다운 효과를 구현하는 방법을 설명합니다. 참고하실 수 있도록 모두와 공유해 주세요. 자세한 내용은 다음과 같습니다.

이벤트:

//发送验证码
$('.js-sms-code').click(function(){
    $(this).attr("disabled", "disabled").html("<span style=&#39;color:#666&#39;><span id=&#39;countdown&#39;>60</span>s 后再试</span>");
    countdown();
    var tel = $(&#39;#tel&#39;).val();
    $.ajax({
      url: "{sh::U(&#39;Home/sendSmscode&#39;)}",
      type:&#39;POST&#39;,
      dataType:"json",
      data: {tel: tel},
      success: function() {
      },
      error: function() {
        $(&#39;.js-help-info&#39;).html("请求失败");
      }
    });
})

댓글: 카운트다운 방식이 아름답다.

코드 보기:

function countdown() { // 递归
  setTimeout(function() {
    var time = $("#countdown").text();
    if (time == 1) {
      $(&#39;.js-sms-code&#39;).removeAttr("disabled");
      $(&#39;.js-sms-code&#39;).html("发送验证码");
    } else {
      $("#countdown").text(time - 1);
      countdown();
    }
  }, 1000);
}

댓글: 시간이 1이 아닌 경우 계속 호출하여 1초를 뺍니다. 시간. setTimeout도 매우 중요합니다. 시간이 1로 줄어들 때까지 비활성화를 해제하고 내용을 '인증코드 전송'으로 변경합니다.


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.