$.fn.wait = function (func, times, interval) {
var _times = times || -1, //100次
_interval = interval || 20, //20毫秒每次
_self = this,
_selector = this.selector, //选择器
_iIntervalID; //定时器id
if( this.length ){ //如果已经获取到了,就直接执行函数
func && func.call(this);
} else {
_iIntervalID = setInterval(function() {
if(!_times) { //是0就退出
clearInterval(_iIntervalID);
}
_times <= 0 || _times--; //如果是正数就 --
_self = $(_selector); //再次选择
if( _self.length ) { //判断是否取到
func && func.call(_self);
clearInterval(_iIntervalID);
}
}, _interval);
}
return this;
};
jQuery 短信获取倒计时
<head>
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.0.js"></script>
</head>
<input id="smspwd" type="button" value="短信获取" onclick='getSMS()'>
<script type="text/javascript">
function getSMS(){
console.log(1)
$("#smspwd").smsCountdown({begin: 10})
}
</script>
<script type="text/javascript">
$.fn.extend({
smsCountdown:function(){
var params = {
begin: arguments[0].begin || 0,
way: arguments[0].way || 'input'
};
var $me = this;
if(params.begin>0){
$me.attr('disabled',true);
var count = params.begin;
if(params.way == 'button'){
var resend = setInterval(function(){
count--;
if (count > 0){
$me.html("\u7b49\u5f85"+count+"\u79d2");
}else {
clearInterval(resend);
$me.removeAttr("disabled").html("\u77ed\u4fe1\u83b7\u53d6");
}
}, 1000);
}else{
var resend = setInterval(function(){
count--;
if (count > 0){
$me.val("\u7b49\u5f85"+count+"\u79d2");
}else {
clearInterval(resend);
$me.removeAttr("disabled").val("\u77ed\u4fe1\u83b7\u53d6");
}
}, 1000);
}
}else{
if(params.way == 'button'){
$me.removeAttr("disabled").html("\u77ed\u4fe1\u83b7\u53d6");
}else{
$me.removeAttr("disabled").val("\u77ed\u4fe1\u83b7\u53d6");
}
}
},
})
</script>