关于jQuery Progressbar更新到100%的Mod或33%函数

时间:2010-10-19 23:42:30

标签: javascript jquery jquery-ui

如果根据所有3个组中的一个或多个项目,如何处理将进度条更新为100%?

例如,如果我有20个水果,0个谷物和2个蔬菜,它应该显示66/67%。如果我有每个组中的一个或多个项目,则显示100%;并且只有1组中的一组或多组应该显示33/34%完成。我不确定我是否应该整理,或者在这里使用mod。绝对需要帮助......

$(document).ready(function($){ 

 $( "#progressbar" ).progressbar();

 var fruits = parseInt($("li#num-of-fruits").text());
 var veggies = parseInt($("li#num-of-veggies").text());
 var grains = parseInt($("li#num-of-grains").text());

 if (fruits > 0) { var fruitsMod = 1 }
 else { var fruitsMod = 0 }

 if (veggies > 0) { var veggiesMod = 1 }
 else { var veggiesMod = 0 }

 if (grains > 0) {var grainsMod = 1}
 else { var grainsMod = 0 }

 var foodSum = 33.33 * (fruitsMod + veggiesMod + grainsMod);

 $("#progressbar").progressbar("option", "value", Math.round(foodSum));

 $("<span>").attr("id", "food-amount").text($("#progressbar").progressbar("option", "value") + "%").prependTo("h3#completeness");

});

HTML只是一个空div#progressbar。 Progressbar是jQuery UI插件版本。

1 个答案:

答案 0 :(得分:1)

这应该可以节省6行和~150字节:

var fruitsMod = (parseInt($("li#num-of-fruits").text()) > 0 ? 1 : 0);
var veggiesMod = (parseInt($("li#num-of-veggies").text()) > 0 ? 1 : 0);
var grainsMod = (parseInt($("li#num-of-grains").text()) > 0 ? 1 : 0);

var foodSum = (100 / 3) * (fruitsMod + veggiesMod + grainsMod);