哪位高手能解释下setTimmeout对自身的调用做到循环的,这个不懂啊.
哪位高手能解释下setTimmeout对自身的调用做到循环的,这个不懂啊.
哪位高手能解释下setTimmeout对自身的调用做到循环的,这个不懂啊.
2016-11-27
var num = 5;
var i;
function jishi() {
document.getElementById("Time").innerHTML = num;
num--;
i = setTimeout(jishi,1000);
if(num<0) {
window.clearTimeout(i);
window.open("https://123.sogou.com/","_blank");
}
}
window.onload = jishi;
本人也是初学,说的不清楚的话见谅。你看第一轮的时候调用jishi函数,网页显示数字是5,num减为4,使用setTimeout,setTimeout将在1秒后调用jishi函数,num是4>0,if部分不执行,第一轮结束。1秒之后,因为setTimeout对jishi函数的调用,第二轮开始,网页显示数字是4,以此类推。。。直到第六轮,网页显示是0,num减为-1,执行if部分,打开新的页面。
<html>
<head>
<meta charset="UTF-8" />
<title>Document</title>
<!-- <script type="text/javascript" src="jquery-1.11.1.min.js"></script> -->
<!-- <link rel="stylesheet" type="text/css" href="base.css" /> -->
</head>
<body>
<form>
<input type="text" id="count" />
</form>
</div>
</div>
</body>
</html>
<script type="text/javascript">
window.onload=function(){
var num=0;
function startCount() {
document.getElementById('count').value=num;
num=num+1;
setTimeout('startCount()',1000)
// alert(num)
}
startCount()
// setTimeout('startCount()',1000)
}
</script>
举报