作者Zingo (zingo)
看板Ajax
标题[问题] Javascript从函式里使用setTimeout
时间Wed Sep 14 09:44:47 2011
我要做一个网页程式,网页在一载入时就会有四个数字一直在跑,
按一下submit停止,再按一下继续跑。
程式码如下:
<html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<table>
<tr>
<td></td><td></td><td></td><td></td>
</tr>
</table>
<form method="post" action="javascript: loopit(stop++)">
<input type="submit">
</form>
<script language=javascript>
var stop=0;
loopit(stop);
function loopit(x) {
if (x%2==0) {
GiveMeNumber();
setTimeout("loopit(x);",10);
}
}
function GiveMeNumber() {
var tableCells = document.getElementsByTagName("TD");
for (j = 0; j < 4; j++) {
var randomnumber=Math.floor(Math.random()*10);
tableCells[j].childNodes[0].nodeValue = randomnumber;
}
}
</script>
</html>
上面的程式码载入之後,setTimeout会失效,应该说不会发挥效用,
可能是问题症结。
我猜是setTimeout里的函式无法引用loopit函式的x变数,是这样吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.62.220.74
※ 编辑: Zingo 来自: 61.62.220.74 (09/14 09:46)
1F:→ CaptainH:你的程式逻辑有问题 09/14 10:53
2F:→ Zingo:可否请大大指点一二? 09/14 11:44
3F:→ kerash:光是用 form 跑就错了,它等於是一直 load 09/14 13:25