2015-07-06 73 views
0

如何在订单状态变为新订单状态时立即从一个状态转换到另一个状态。我在Yii2中实现了这一点。jquery - 多步骤进度条显示Yii2中已完成的步骤

var i = 1; 
$('.progress .circle').removeClass().addClass('circle'); 
$('.progress .bar').removeClass().addClass('bar'); 
setInterval(function() { 
    $('.progress .circle:nth-of-type(' + i + ')').addClass('active'); 

    $('.progress .circle:nth-of-type(' + (i-1) + ')').removeClass('active').addClass('done'); 

    $('.progress .circle:nth-of-type(' + (i-1) + ') .label').html('✓'); 

    $('.progress .bar:nth-of-type(' + (i-1) + ')').addClass('active'); 

    $('.progress .bar:nth-of-type(' + (i-2) + ')').removeClass('active').addClass('done'); 

    i++; 

    if (i==0) { 
    $('.progress .bar').removeClass().addClass('bar'); 
    $('.progress div.circle').removeClass().addClass('circle'); 
    i = 1; 
    } 
}, 1000); 

这里是我的jsfiddle http://jsfiddle.net/9cs776m0/1/

回答

0

尝试

var circles = $('.progress .circle'); 
var currentCircle = circles.first(); 
var previousCircle = $(); 

(function() 
{ 
    currentCircle.addClass('active'); 
    previousCircle.removeClass('active').addClass('done'); 

    var bar = currentCircle.prev(); 
    bar.addClass('done'); 

    previousCircle = currentCircle; 
    currentCircle = currentCircle.nextAll('.circle:first'); 

    if (previousCircle.length) 
    { 
     setTimeout(arguments.callee, 1000); 
    } 
})(); 

我成功了,无需额外类half在酒吧

http://jsfiddle.net/9cs776m0/2/

+0

它不工作,它不应该改变直到下一个状态得到更新。像亚马逊订单状态栏。当他们改变订单状态只有进度条变化 – JKLM

+0

@Saurabh你用setInterval写了它,没有按钮来触发下一个状态 –

+0

是的,因为我不知道如何写它可以请你帮助我..? – JKLM