使用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%以上。任何人都可以帮我实现这个目标吗?
非常感谢
答案 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.