91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用jQuery插件開發發送短信倒計時功能

發布時間:2021-07-09 14:25:31 來源:億速云 閱讀:122 作者:小新 欄目:web開發

小編給大家分享一下如何使用jQuery插件開發發送短信倒計時功能,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

實現的主要功能如下:

1.點擊按鈕的時候,可以進行倒計時,倒計時自定義。

2.當接收短信失敗后,倒計時停止,可點擊重新發送短信。

3.點擊的元素支持一般標簽和input標簽。

html代碼:

<input type="button" class="sameBtn btnCur" value="發送驗證碼"/>
<div class="sameBtn btnCur2">發送驗證碼</div>

css代碼:

body{padding:100px;text-align: center;}
.sameBtn{display: inline-block;font-size:12px;cursor:pointer;width:76px;height:25px;line-height: 25px;text-align: center;border:0;background: #3186df;color:#fff;}
.sameBtn.current{background: #b1b1b1;}

js代碼:

//短信倒計時功能
/**使用方式如下:
 * $(".btnCur").CountDownF({
 *    time:120,
 *     resetWords:'重新發送', //文字定義 
 *    cnSeconds:'s',//倒計時中顯示中文的秒,還是s
 *    clickClass:'current', //點擊后添加的class類
 *    countState:true,
 *    callback:function(){
 *      setTimeout(function(){
 *       //當發送失敗后,可以立即清除倒計時與其狀態
 *        $(".btnCur").CountDownF('clearState');
 *      },3000);
 *    }
 *  });
 * 
 * */
;(function($,window,document,undefined){
  var pluginName = 'CountDownF',
  defaluts = {
    time:120,
    resetWords:'重新發送', //文字定義
    cnSeconds:'s',//倒計時中顯示中文的秒,還是s
    clickClass:'current', //點擊后添加的class類
    countState:true //是否可以倒計時,true可以倒計時,false不能進行倒計時
  }
  function Count(element,options){
    this.element = element;
    this.$element = $(this.element);
    this.state = true;
    this.settings = $.extend({},defaluts,options);
    this.number = this.settings.time;
    this.init();
  }
  Count.prototype = {
    init:function(){
      var self = this;
      self.$element.on('click',function(){
        if(self.state && self.settings.countState){
          self.state = false;
          if(self.settings.countState){
            self._count();
          }
          if(self.settings.callback){
            self.settings.callback();
          }
        }
      });
    },
    //倒計時函數
    _count:function(){
      var self = this;
      if(self.number == 0){
        self._clearInit();
      }else{
        if(self.number < 10){
          //如果當前元素是input,使用val賦值
          this.$element.attr('type') ? this.$element.val('0' + self.number + self.settings.cnSeconds) : this.$element.html('0' + self.number + self.settings.cnSeconds);  
        }else{
          this.$element.attr('type') ? this.$element.val(self.number + self.settings.cnSeconds) : this.$element.html(self.number + self.settings.cnSeconds);
        }
        self.number--;
        this.$element.addClass(self.settings.clickClass);
        self.clearCount = setTimeout(function(){
          self._count();
        },1000);
      }
    },
    //修改是否可發送短信驗證碼倒計時狀態
    change:function(state){
      var self = this;
      self.settings.countState = state;
    },
    //置為初始狀態
    _clearInit:function(){
      var self = this;
      self.$element.removeClass(self.settings.clickClass);
      self.$element.attr('type') ? self.$element.val(self.settings.resetWords) : self.$element.html(self.settings.resetWords); 
      clearTimeout(self.clearCount);
      self.number = self.settings.time;
      self.state = true;
    },
    //清除倒計時進行狀態
    clearState:function(){
      var self = this;
      self._clearInit();
    }
  };
  $.fn.CountDownF = function(options){
    var args = arguments;
    if(options === undefined || typeof options ==='object' ){
      return this.each(function(){
        if(!$.data(this,'plugin' + pluginName)){
          $.data(this,'plugin' + pluginName,new Count(this,options));
        }
      });
    }
    else if(typeof options === 'string' && options !== 'init'){
      var returns;
       this.each(function(){
        var data = $.data(this,'plugin' + pluginName);
        if(data instanceof Count && typeof data[options] === 'function'){
          returns = data[options].apply(data,Array.prototype.slice.call(args,1));
        }
        if(options === 'destory'){
           $.data(this, 'plugin' + pluginName, null);
        }
      });
       return returns !== undefined ? returns : this;
    }
    else{
      $.error('Method' + options + 'does not exist on jQuery.CountDownF');
    }
  }
})(jQuery,window,document);

調用方式:

$(function(){
  $(".btnCur").CountDownF({
    time:120,
    countState:true,
    callback:function(){
      setTimeout(function(){
        $(".btnCur").CountDownF('clearState');
      },3000);
    }
  });
  $(".btnCur2").CountDownF({
    time:50,
    countState:true,
    cnSeconds:'秒',
    callback:function(){
      setTimeout(function(){
        $(".btnCur2").CountDownF('clearState');
      },5000);
    }
  });
})

以上是“如何使用jQuery插件開發發送短信倒計時功能”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

德兴市| 遵化市| 同仁县| 仙居县| 密山市| 西城区| 安阳县| 滦南县| 谢通门县| 台东县| 西充县| 葵青区| 将乐县| 三亚市| 涞水县| 永和县| 定陶县| 鄢陵县| 黄石市| 商水县| 徐州市| 界首市| 通化市| 瓦房店市| 任丘市| 青海省| 重庆市| 益阳市| 洪洞县| 新丰县| 周宁县| 二连浩特市| 施甸县| 澜沧| 金溪县| 共和县| 荆州市| 永善县| 新宾| 兰考县| 忻城县|