如何使用jQuery插件开发发送短信倒计时功能

小编给大家分享一下如何使用jQuery插件开发发送短信倒计时功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

实现的主要功能如下:

如何使用jQuery插件开发发送短信倒计时功能

1.点击按钮的时候,可以进行倒计时,倒计时自定义。

2.当接收短信失败后,倒计时停止,可点击重新发送短信。

3.点击的元素支持一般标签和input标签。

html代码:

<inputtype="button"class="sameBtnbtnCur"value="发送验证码"/>
<divclass="sameBtnbtnCur2">发送验证码</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){
varpluginName='CountDownF',
defaluts={
time:120,
resetWords:'重新发送',//文字定义
cnSeconds:'s',//倒计时中显示中文的秒,还是s
clickClass:'current',//点击后添加的class类
countState:true//是否可以倒计时,true可以倒计时,false不能进行倒计时
}
functionCount(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(){
varself=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(){
varself=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){
varself=this;
self.settings.countState=state;
},
//置为初始状态
_clearInit:function(){
varself=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(){
varself=this;
self._clearInit();
}
};
$.fn.CountDownF=function(options){
varargs=arguments;
if(options===undefined||typeofoptions==='object'){
returnthis.each(function(){
if(!$.data(this,'plugin'+pluginName)){
$.data(this,'plugin'+pluginName,newCount(this,options));
}
});
}
elseif(typeofoptions==='string'&&options!=='init'){
varreturns;
this.each(function(){
vardata=$.data(this,'plugin'+pluginName);
if(datainstanceofCount&&typeofdata[options]==='function'){
returns=data[options].apply(data,Array.prototype.slice.call(args,1));
}
if(options==='destory'){
$.data(this,'plugin'+pluginName,null);
}
});
returnreturns!==undefined?returns:this;
}
else{
$.error('Method'+options+'doesnotexistonjQuery.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插件开发发送短信倒计时功能”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注恰卡编程网行业资讯频道!

发布于 2021-07-09 21:17:26
收藏
分享
海报
0 条评论
165
上一篇:Vue + Webpack + Vue-loader有什么用 下一篇:Vue中如何使用全局组件和局部组件
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码