丶天空海阔 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条)

报告相同问题?

悬赏问题

  • ¥50 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?