第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

javascript setTimeout倒計數(shù)的問題

javascript setTimeout倒計數(shù)的問題

冉冉說 2019-04-21 20:13:52
$('#test').on('click',function(){var$self=$(this);varsecs=60;for(vari=secs;i>=0;i--){window.setTimeout(function(){vartext=i+'秒后再次發(fā)送';console.log(i);$self.val(text);if(i==0){$self.val('發(fā)送驗證碼');}},(secs-i)*1000);}});就是發(fā)送驗證碼,然后60秒之后可以再次發(fā)送,想做一個倒計數(shù)的顯示,但是console.log(i)的輸出全是-1不知道是怎么回事?
查看完整描述

2 回答

?
海綿寶寶撒

TA貢獻1809條經(jīng)驗 獲得超8個贊

$('#test').on('click',function()
{
var$self=$(this);
varsecs=60;
varfunc=function(){
vartext=secs+'秒后再次發(fā)送';
$self.val(text);
if(secs==0)
{
$self.val('發(fā)送驗證碼');
}else{
secs--;
window.setTimeout(func,1000);
}
};
window.setTimeout(func,1000);
});
                            
查看完整回答
反對 回復(fù) 2019-04-21
?
aluckdog

TA貢獻1847條經(jīng)驗 獲得超7個贊

setTimeout是異步執(zhí)行的,會在空閑的時候執(zhí)行setTimeout中的函數(shù),而這里的“空閑”大致指的是當(dāng)前棧中代碼執(zhí)行完畢,也就是這里的for語句執(zhí)行結(jié)束,才會執(zhí)行timeout中的函數(shù)。
所以這里的執(zhí)行過程是:for語句注冊了60個timeout函數(shù),for語句結(jié)束后,開始一個一個執(zhí)行timeout函數(shù)。但是這里timeout中的i已經(jīng)是for執(zhí)行后的值,也就是-1。(具體請了解什么是閉包)
varsecs=60;
for(vari=secs;i>=0;i--){
window.setTimeout((function(t){
returnfunction(){
vartext=t+'秒后再次發(fā)送';
console.log(text);
};
})(i),(secs-i)*1000);
}
                            
查看完整回答
反對 回復(fù) 2019-04-21
  • 2 回答
  • 0 關(guān)注
  • 306 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號