為什么到了0之后還是會自減
<!DOCTYPE html>
<html>
?<head>
? <title>瀏覽器對象</title> ?
? <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> ??
?</head>
?<body>
? <!--先編寫好網頁布局-->
? <p>操作成功</p>
? <p><span id="back">5秒回到頁面 </span>
? ? <a style="text-decoration:underline ">返回</a></p>
?
? <script type="text/javascript"> ?
?
? ?//獲取顯示秒數的元素,通過定時器來更改秒數。
? ? var aaa=document.getElementById("back");
? ? var bbb=5;
? ? function con()
? ? {
? ? ? ? ?bbb--;
? ? ? ? ?aaa.innerHTML=bbb+"秒后回到頁面"; ?
? ? }
? ? var i=setInterval("con()",1000);
? ? if(bbb==0)
? ? {
? ? ? clearInterval(i);
? ? ??
? ? }
?
?
? ?//通過window的location和history對象來控制網頁的跳轉。
? ?
?</script>?
</body>
</html>
2016-08-15
回復 李逍遙lh:?? ??? ?<script type="text/javascript">
?? ??? ??? ?//獲取顯示秒數的元素,通過定時器來更改秒數。
?? ??? ??? ?var aaa = document.getElementById("back");
?? ??? ??? ?var bbb = 5;
?? ??? ??? ??? ?var i = setInterval("con()", 1000);
?? ??? ??? ?function con() {
?? ??? ??? ??? ?aaa.innerHTML = bbb + "秒后回到頁面";
?? ??? ??? ??? ?if(bbb == 0) {clearInterval(i);}bbb--;}
?? ??? ??? ?//通過window的location和history對象來控制網頁的跳轉。
?? ??? ?</script>
失誤了,要把判斷函數放在循環里面,這樣就可以了
2016-08-15
if(bbb==0)
? ? {
? ? ? clearInterval(i);
? ? }else{
????? setInterval("con()",1000);
?? }
就行了,你要把定時器放在判斷語句里面,否則的話定時器無限循環,根本不會執行判斷(bbb==0)
2016-08-15
bbb=0時,setTimeout()停止,接著function函數繼續執行,bbb=-1,setTimeout()繼續顯示時間,接著……
2016-08-15
我覺得你只是停止計時器了,那個con方法還會執行,還會--
2016-08-15
?感覺沒毛病啊