丶天空海阔 2016-03-29 07:41 采纳率: 100%
浏览 2004
已采纳

js setInterval在谷歌浏览器控制台能看到在运行 但是前台体现不出来

js setInterval在谷歌浏览器控制台能看到在运行 但是前台体现不出来
点完trybtn后,前台页面里的进度条和值都正常累加 但是走4次之后,后台可以看到setInterval一直在运行 这里我用的是thecount 一直累加可以看到。但是前台页面上的值就不动了。在网上差很长时间也没找到,求大神指教啊。

 $("#trybtn").click(function () {
        var thecount=0;
        var inCount=$(".incount").size();
        var steptime=1000*3;
        var myVar=setInterval(function(){
            for(var i=0;i<inCount;i++){
                //获取进度条宽度百分比
                var a=0,b=0,c=0,d=0,e=0,newValue=0;
                a=parseInt($(".progress-bar"+i).css("width"));
                b=parseInt($(".progress"+i).css("width"));
                c= parseInt(a/b*100);
                //获取每次步进值 
                var allowtime=parseInt($(".theTime"+i).text());
                var stepValue=parseInt(100/(allowtime*60*1000/steptime));

                newValue=c+stepValue+1;
                console.log(newValue);
                if(newValue>60&&newValue<100){
                    $(".progress-bar" + i).attr("class", "progress-bar progress-bar"+i+" progress-bar-warning");
                }
                if(newValue>30&&newValue<60){
                    $(".progress-bar" + i).attr("class", "progress-bar progress-bar"+i+" progress-bar-success");
                }
                if(newValue>=100) {//完成标记
                    $(".progress-bar" + i).css("width", "100%");
                    $(".theTag" + i).text("100%");
                    $(".progress-bar" + i).attr("class", "progress-bar progress-bar"+i+" progress-bar-danger");

                    $(".trData"+i).fadeOut(3000);
                    $(".trData"+i).css('background-color','red');
                }
                else{
                    $(".progress-bar" + i).css("width", newValue+"%");
                    $(".theTag" + i).text(newValue+"%");
                    }
            }
            thecount++;
            console.log("执行了:"+thecount);
            console.log("----------------------------------");
            },steptime);
    });
  • 写回答

4条回答 默认 最新

  • danielinbiti 2016-03-29 07:54
    关注

    把setInterval换成setTimeout方式实现
    估计可能原因是你这段代码3秒钟执行不完,导致一直在执行setIntervale中的方法,无法释放页面线程,没法刷新。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥20 matlab计算中误差
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊