<!DOCTYPE?html>
<html?lang="en">
<head>
????<meta?charset="UTF-8">
????<title>Title</title>
</head>
<body>
????<button?id="btn">按我倒計(jì)時(shí)</button>
<script>
????var?oBtn?=?document.getElementById('btn');
????var?sec?=?60;
????oBtn.onclick?=?function(){
????????for(var?i?=0;i<sec;i++){
????????????var?timer?=?setTimeout(function(){
????????????????if(sec!=0){
????????????????????oBtn.innerText?=?'重新發(fā)送('+sec+')';
????????????????????sec--;
????????????????}else{
????????????????????sec?=?60;
????????????????????oBtn.innerText?=?'按我倒計(jì)時(shí)'
?}
????????????},1000)
????????}
????}
</script>
</body>
</html>目的是想點(diǎn)擊按鈕,按鈕開始60s的倒計(jì)時(shí),每隔一秒數(shù)字減一,但是我上面的代碼按一下,過了一秒,數(shù)字直接變成了1,這是什么原因呢?我是這么分析的,當(dāng)v=0時(shí),隔了1s,文字內(nèi)容變成'重新發(fā)送(60)',執(zhí)行完之后v=1,隔了1s,文字內(nèi)容變成‘重新發(fā)送(59)’...但就是不對(duì),望大神指明。
setTimeout的疑慮?
好學(xué)的Lv
2017-03-15 10:14:20