在线等待;请教一个菜问题
<script>
var tcount = 0; //全局变量
function CountTime(iSeconds)
{
//iSeconds秒后运行MyFun()
tcount++;
timeLeft = iSeconds - tcount;
timer=window.setTimeout("CountTime("+iSeconds+")",1000);
if(timeLeft<=0)
{
clearTimeout(timer);
MyFun();
}
}
function MyFun()
{
alert("ok");
}
</script>
<input type="button" onclick="CountTime(3)" value="3秒">
<input type="button" onclick="CountTime(5)" value="5秒">
<div id="time"></div>
<body>
在函数中 tcount的值每次运行时都是0,函数将会循环执行下去不停止,怎么将 tcount设置成一个变量,保存执行后的值:比如执行一次后是1,下次执行时还是1,则tcount++则是2
问题点数:100、回复次数:5Top
1 楼net_lover(【孟子E章】)回复于 2004-07-01 12:04:20 得分 50
<script>
var s,tcount = 0; //全局变量
function CountTime(iSeconds)
{
s = iSeconds
tcount = 0
c()
}
function c()
{
//iSeconds秒后运行MyFun()
tcount++;
timeLeft = s - tcount;
timer=window.setTimeout("c()",1000);
time.innerText=timeLeft
if(timeLeft<=0)
{
clearTimeout(timer);
MyFun();
}
}
function MyFun()
{
alert("ok");
}
</script>
<input type="button" onclick="CountTime(3)" value="3秒">
<input type="button" onclick="CountTime(5)" value="5秒">
<div id="time"></div>
<body>Top
2 楼quedan22499()回复于 2004-07-01 13:33:15 得分 0
time.innerText=timeLeft,这句话是什么意思,运行的时候不能识别time???
Top
3 楼meizz(梅花雪)回复于 2004-07-01 13:41:09 得分 0
不太明白楼主的意思, 不过在设置延时器的用法上楼主没有必要用 clearTimeout
var tcount = 0; //全局变量
function CountTime(iSeconds)
{
tcount++;
timeLeft = iSeconds - tcount;
if(timeLeft<=0) MyFun();
else window.setTimeout("CountTime("+iSeconds+")",1000);
}
function MyFun()
{
alert("ok");
}Top
4 楼quedan22499()回复于 2004-07-01 13:52:18 得分 0
我的意思是现在执行CountTime()这个函数,当iSeconds=3时,应该执行一次if()后面的
语句,即只有累加到tcount等于3.if条件才成立.否则每隔1秒执行一次函数.现在问题时
怎么保存住tcount++后的值,1秒后调用CountTime(iSeconds)函数,tcount的值又被设置为
0,则此函数将会形成死循环.而且不用clearTimeout怎么清除设置的setTimeout(),急,
请教Top
5 楼wanghr100(灰豆宝宝.net(努力工作))回复于 2004-07-01 21:09:42 得分 50
tcount是全局变量,所以,会保存住tcount++后的值.
你可以试一下,点"3秒"完了后,然后再点"5秒".5秒响应只用了"2秒".
因为tcount是从3开始递增起的.Top




