基本逻辑是设置一个数值,触发点击事件后禁用点击事件,60秒之内,每一秒执行一次函数(采用interval来处理),60秒后,还原;
缺点:页面刷新函数重置;
wxml:
<button class='Code' style='background:{{background}}' disabled='{{disabled}}' data-id="2" bindtap="getBtn">{{time}}</button>
js:
data: {
time:'获取验证码',
currentTime:'60',
background:'#00a8fe',
disabled:false,
},
/*-----验证码的js-----*/
getBtn: function (options) {
var that = this;
var currentTime = that.data.currentTime;
that.setData({
time: currentTime + '秒',
background:'#f2f2f2',
disabled:true,
})
/*setInterval(表达式,时间):页面载入后,每经过指定毫秒值后执行指定表达式,是间隔多次执行的
setTimeout(表达式,时间):页面载入后,经过指定毫秒值后执行指定表达式,只执行一次*/
var interval = setInterval(function () {
that.setData({
time: (currentTime - 1) +
'秒'
})
currentTime--;
if (currentTime <=
0) {
clearInterval(interval)
that.setData({
time: '获取验证码',
currentTime: 60,
background: '#00a8fe',
disabled:false,
})
}
}, 1000)
}