这次做的是一个抽奖程序,因为有个奖是一次要抽30个,有时出现点击了“停止”按钮,但是仍然停不下来的状况,关键代码如下:
//定义一个TIMEID数组
var timeid=new Array(30);
.....
//循环体,给TIMEID赋值
for(i=1;i<31;i++){
settime('showno'+i,i)
}
//生成TIMEID
function settime(cname,taid){
timeid[taid]=setTimeout("cjstart('"+ cname + "','" + taid + "')",20);
}
........
//清空TIMEID,停止抽奖
function cjstop(cname){
var cj_result='';
for(i=1;i<31;i++){
clearTimeout(timeid[i]);
}
}
请大家帮我找找原因!!
//定义一个TIMEID数组
var timeid=new Array(30);
.....
//循环体,给TIMEID赋值
for(i=1;i<31;i++){
settime('showno'+i,i)
}
//生成TIMEID
function settime(cname,taid){
timeid[taid]=setTimeout("cjstart('"+ cname + "','" + taid + "')",20);
}
........
//清空TIMEID,停止抽奖
function cjstop(cname){
var cj_result='';
for(i=1;i<31;i++){
clearTimeout(timeid[i]);
}
}
请大家帮我找找原因!!
function start()//开始
{
if (i<31)
{
cjstart('showno'+i,i);
timer = setTimeout('add()',20);
}
else
clearTimeout(timer);}
function add(){ i++;}
function stop() //停止
{
try{clearTimeout(timer);
}catch(e){}
}
var timer,i=0;
function start()//开始
{
if (++i<31)
{
cjstart('showno'+i,i);
timer = setTimeout('start()',20);
}
else
clearTimeout(timer);}
function stop() //停止
{
try{clearTimeout(timer);
}catch(e){}
}
就是如果点击两次抽奖,那么就会造成“停不下来”的情况。
有点想不通,点击两次后,timeid虽然被重新赋值,但是我清空的时候是
for(i=1;i <31;i++){
clearTimeout(timeid[i]);
}
这样应该不会影响其停止的啊?
奇了怪了!!!!