<input type="button" class="sameBtn btnCur" value="发送验证码"/>
div class="sameBtn btnCur2">发送验证码</div>
body{padding:100px;text-align: center;}
.sameBtn{display: inline-block;font-size:12px;cursor:pointer;width:76px;height:25px;line-height: 25px; center;border:0;background: #3186df;color:#fff;}
.sameBtn.current{ #b1b1b1;}
//短信倒计时功能
/**使用方式如下:
* $(".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文字定义
cnSeconds:'s',1)">倒计时中显示中文的秒,还是s
clickClass:'current',1)">点击后添加的class类
countState:true 是否可以倒计时,true可以倒计时,false不能进行倒计时
}
Count(element,options){
this.element = element;
this.$element = $(this.element);
this.state = true;
this.settings = $.extend({},defaluts,options);
this.number = .settings.time;
.init();
}
Count.prototype = {
init:(){
var self = ;
self.$element.on('click',1)">(){
if(self.state && self.settings.countState){
self.state = false;
if(self.settings.countState){
self._count();
}
(self.settings.callback){
self.settings.callback();
}
}
});
},倒计时函数
_count:;
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);
}{
this.$element.val(self.number + self.settings.cnSeconds) : this.$element.html(self.number + self.settings.cnSeconds);
}
self.number--;
.$element.addClass(self.settings.clickClass);
self.clearCount = setTimeout((){
self._count();
},1000);
}
},1)">修改是否可发送短信验证码倒计时状态
change:(state){
;
self.settings.countState = state;
},1)">置为初始状态
_clearInit:;
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 = ;
},1)">清除倒计时进行状态
clearState:;
self._clearInit();
}
};
$.fn.CountDownF = (options){
var args = arguments;
if(options === undefined || typeof options ==='object' ){
return this.each(if(!$.data(this,'plugin' + pluginName)){
$.data(new Count(else if(typeof options === 'string' && options !== 'init'){
var returns;
var data = $.data( pluginName);
if(data instanceof Count && typeof data[options] === 'function'){
returns = data[options].apply(data,Array.prototype.slice.call(args,1));
}
if(options === 'destory'){
$.data(null);
}
});
return returns !== undefined ? returns : ;
}
{
$.error('Method' + options + 'does not exist on jQuery.CountDownF');
}
}
})(jQuery,document);
$((){
$(".btnCur").CountDownF({
time:120(){
setTimeout((){
$(".btnCur").CountDownF('clearState');
},3000);
}
});
$(".btnCur2").CountDownF({
time:50(){
$(".btnCur2").CountDownF('clearState');
}
});
})