根据要循环的元素数增加Bootstrap进度条百分比

时间:2016-02-24 11:42:54

标签: javascript jquery css twitter-bootstrap

使用jQuery,我尝试根据JS数组中必须循环的多少元素来增加Bootstrap进度条的一部分,并为其执行AJAX请求。

我的计划是获取数组的长度,除去进度条的总百分比(在这种情况下为60%)并将其除以长度以获得每个循环应增加的百分比。 / p>

到目前为止我的代码是:

function savedata(qid) {

      var answerslen = choiceoptions.length;

     //We have 60% of the bar to clear looping these, so work out increment
     var proginc = 60 / answerslen;

     choiceoptions.forEach(function(entry) { //Loop through array

         $.ajax({
             method: "post",
             url: "/../save",
             data: { qid: qid, answer: entry }
         })
        .done(function( msg ) {

          var curprog = ( 100 * parseFloat($('#progressbar').css('width')) / parseFloat($('#progressbar').parent().css('width')) );

          var newprog = parseInt(curprog) + parseInt(proginc);

          $("#progressbar").css('width', newprog);


        });

    });

}

这并不能按预期工作,而是在第一个循环中直接将进度发送到100%以上。任何人都可以帮我实现这个目标吗?

非常感谢

可能有用的可待因:http://codepen.io/anon/pen/bEXOJP?editors=1010

1 个答案:

答案 0 :(得分:-1)

以下是我的表现:

如果你的进度条在示例中已经是60%(或.6或60),那意味着你有40%(或.4或40)。我假设您还有40个问题,或者至少剩下一些问题可以被剩余金额的2,4,5,8或10整除;此值将归因于您上面的条目变量。如果是这种情况,找到当前进度条宽度量的基本公式将是((60 +金额"条目"值得)/ 100)* 100。

无需导出当前进度条宽度,因为在这种情况下找到百分比的数学运算非常简单。 Look here for a refresher course on percentages formulas.