setTimeout()
用於在指定的毫秒數后調用函數或計算表達式,只執行 code 一次。
setInterval()
可按照指定的周期(以毫秒計)來調用函數或計算表達式,不停地調用函數,直到 clearInterval() 被調用或窗口被關閉。
由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的參數。
代碼實現如下
HTML部分
1 <body> 2 <div class="wrap"> 3 <input type="tel" class="shuru" id="phone"/> 4 <button class="btn" id="send">發送</button> 5 </div> 6 </body>
標題為JSFidder的鏈接,js部分代碼如下
1 var wait=60; 2 function time(){ 3 var btn=document.getElementById("send"); 4 var str=btn.innerText; 5 if(wait==1){ 6 btn.innerText="再次發送"; 7 btn.removeAttribute("disabled"); 8 wait=60; 9 }else{ 10 wait--; 11 btn.innerText=wait+"s后重新獲取"; 12 btn.setAttribute("disabled",true); 13 setTimeout(function(){ 14 time(); 15 },1000); 16 } 17 } 18 //點擊button觸發 19 document.getElementById("send").onclick=time;
js部分代碼如下
1 <script type="text/javascript"> 2 function time(){ 3 var wait=60; 4 var btn=document.getElementById("send"); 5 btn.setAttribute("disabled",true); 6 var timer=setInterval(function(){ 7 if(wait==1){ 8 btn.innerText="再次發送"; 9 btn.removeAttribute("disabled"); 10 wait=60; 11 clearInterval(timer); 12 }else{ 13 wait--; 14 btn.innerText=wait+"s后重新獲取"; 15 } 16 },1000) 17 } 18 document.getElementById("send").onclick=time; 19 </script>