my_00 2016-04-21 09:09 采纳率: 0%
浏览 1475

jsp 页面为多个标签 用for()循环 分别添加多个计时器!在线等!谢谢啦!!

 jsp 页面为多个标签 用for()循环 分别添加多个计时器!在线等!谢谢啦!!

下面这样写,结果所有span都执行同一个计时器!如何修改??

 for(var i = 0;i<$(".input").size();i++){
        i = i;
        alert(i);
        ordertime=$(".input")[i].value;
        alert(ordertime);
        ordertime=ordertime.replace("-","/");
        ordertime=ordertime.replace("-","/");
        //alert(ordertime);
         var ordertime=new Date(ordertime);
        // alert(ordertime);
         var nowtime=new Date();
        maxtime = (ordertime.getTime()-nowtime.getTime())/1000+30*60;
         alert(maxtime);
         var timer = setInterval( function CountDown(){ 
             //alert(maxtime);
             if(maxtime>=0){  
                 minutes = Math.floor(maxtime/60);  
                 seconds = Math.floor(maxtime%30);  
                 msg = "距离结束还有"+minutes+"分"+seconds+"秒";  
                 //alert(msg);
                // var i = 0;
                 //alert(i);
                 $(".span")[i].innerHTML=(msg);
                 //alert();
                 //document.getElementById("timer").innerHTML=msg;  
                 if(maxtime == 5*30) alert('注意,还有5分钟!');  
                 --maxtime; 
                 //continue;
                // break;
                 }  
                 else{  
                 clearInterval(timer);  
                 //alert("时间到,结束!");  
                 //continue;
                 }  
                 },1000);

    }

  • 写回答

1条回答

  • little_how 2016-04-21 09:37
    关注

    这句话就得i变量产生了闭包;
    还有就是你的循环效率特别低,每次都要考jQuery去选择。

    修改方法:
    for循环之外定义如下两个变量(提高效率);
    var inputs = $(".input");
    var spans = $(".span");

    for循环改变:
    for(var i=0,size=inputs.size;i<size;i++){//减少去size的步骤
    var index = i;
    ....
    ordertime=inputs[index].value;
    ...
    spans[index].innerHTML=msg;
    }

    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!