我正在尝试集成jquery进度条,但遇到了问题。
取下列代码。。
$(document).ready(function(){
$( "#progressbar" ).progressbar({value: 0});
var size = $(".item img.main").size();
var overall = 100 / size;
var sum = overall;
$(".item img.main").each(function (index) {
var $this = $(this);
console.log(sum++);
$( "#progressbar" ).progressbar({value: sum++});
});
为了查看一个更好的例子,我在这里把一个放到了js bin中。
http://jsbin.com/ogatij/2/edit#source
渲染代码,你会看到我的意思是num++对我不起作用,比如说对3个图像。
总值为33.333333333333336
好的,所以这应该使用++对每个循环循环循环三次
33.333333333333336
66.333333333333336
100
但这不起作用。
33.333333333333336
34.333333333333336
35.333333333333336
有人能解释为什么会发生这种事吗???
感谢
因为sum++
只会将值增加1。试试这个。
$(document).ready(function(){
$( "#progressbar" ).progressbar({value: 0});
var size = $(".item img.main").size();
var overall = 100 / size;
var sum = overall;
$(".item img.main").each(function (index) {
var $this = $(this);
console.log((overall * (index + 1)));
$( "#progressbar" ).progressbar({value: (overall * (index + 1))});
});
因为您完全误解了++
运算符的作用。它将变量的值增加一,同时在递增之前返回变量的值。
您应该使用sum+=total而不是sum++。sum+=total将用total的值递增总和。sum++将使总和增加1。