这次做的是一个抽奖程序,因为有个奖是一次要抽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]);
}
}
请大家帮我找找原因!!

解决方案 »

  1.   

    去javascrpit版,或者ajax问问吧
      

  2.   

    var timer,i=1;
    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){}
    }
      

  3.   

    写错了一个地方
    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){}
    }
      

  4.   

    已经找到错误原因了
    就是如果点击两次抽奖,那么就会造成“停不下来”的情况。
    有点想不通,点击两次后,timeid虽然被重新赋值,但是我清空的时候是
    for(i=1;i <31;i++){ 
       clearTimeout(timeid[i]); 

    这样应该不会影响其停止的啊?
    奇了怪了!!!!
      

  5.   

    另外,发现使用PCONNECT连接MYSQL确实对提升性能影响巨大,以前做的东西负载小看不到效果,这次才发现原来一个字母的改变带来的效果是巨大的,像开发这种单机运行的BS程序,使用PCONNECT绝对是首选。