我是我页面上的几个Jquery UI进度条小部件实例.
我遇到的问题是它只加载第一个值,并模拟每个条形图,而不是循环遍历页面上的所有条形并获取唯一值.任何人都可以解释为什么每个函数没有正确循环这些值?
添加了一个小提琴:http://jsfiddle.net/Uy9cA/25/
<div class="progress_bar" value="20"><div class="progress-label">Loading...</div></div> <div class="progress_bar" value="40"><div class="progress-label">Loading...</div></div>
Run Code Online (Sandbox Code Playgroud)
$(function() {
$('.progress_bar').each(function() {
var progressbar = $( ".progress_bar" ),
progressLabel = $( ".progress-label" ),
progressvalue = $(".progress_bar").attr('value');
console.log(progressvalue);
progressbar.progressbar({
value: false,
change: function() {
progressLabel.text( progressbar.progressbar( "value" ) + "% Complete" );
},
complete: function() {
progressLabel.text( "Complete!" );
}
});
function progress() {
var val = progressbar.progressbar( "value" ) || 0;
progressbar.progressbar( "value", val + 1 )
.removeClass("beginning middle end")
.addClass(val < 40 ? "beginning" : val < 80 ? "middle" : "end");
if ( val < progressvalue )
{
setTimeout( progress, 100 );
}
}
setTimeout( progress, 100 );
});
});
Run Code Online (Sandbox Code Playgroud)
见: 样品
使用:
var progressbar = $(this),
progressLabel = $(this).find( ".progress-label" ),
progressvalue = $(this).attr('value');
Run Code Online (Sandbox Code Playgroud)
代替:
var progressbar = $( ".progress_bar" ),
progressLabel = $( ".progress-label" ),
progressvalue = $(".progress_bar").attr('value');
Run Code Online (Sandbox Code Playgroud)
对于每个.progress_bar班级,您必须使用自己的属性/孩子$(this)