Bootstrap进度条动态元素 - 动态更改宽度

时间:2015-04-29 08:34:59

标签: javascript jquery html css twitter-bootstrap

我的页面上有2个进度条。一个是静态HTML版本,另一个是通过jQuery动态创建的。如果我想在jQuery中更改宽度以便进度条“正在进行”,那么只有静态的进度条正在工作。

另一个立即100%没有延迟。

以下是更好代表性的代码: https://jsfiddle.net/gezgind/DTcHh/7133/

HTML

<div class="container">
    <div id="reportbars">
        <div class="progress" style="width:500px;margin-bottom:0px;margin-top:20px;">
            <div class="progress-bar" id="tracking" role="progressbar" aria-valuenow="60" aria-valuemin="0" aria-valuemax="100" style="width: 0%;transition-duration: 3s;">
                <span style="visibility:hidden">xxxx</span>
            </div>
      </div>
      <button id="report_start" type="button" class="btn btn-default">Start</button>
</div>

JS

 $("#report_start").click(function(){
    $("#reportbars").append(
        '<div class="progress" style="width:500px;margin-bottom:0px;margin-top:20px;">' +
        '<div class="progress-bar" id="tracking1" role="progressbar" aria-valuenow="60" aria-valuemin="0" aria-valuemax="100" style="width: 0%;transition-duration: 3s;">' +
        '<span style="visibility:hidden">Tracking 950.325</span>' +
        '</div></div>'
    );
    $("#tracking").css("width","100%");
    $("#tracking1").css("width","100%");
});

我该如何解决?

1 个答案:

答案 0 :(得分:2)

检查出来..

new fiddle

你必须稍微调整你的js代码。你一次完成所有的工作。这样做:

JS代码:

    /* Latest compiled and minified JavaScript included as External Resource */

$("#report_start").click(function(){


    $("#reportbars").append('<div class="progress" style="width:500px;margin-bottom:0px;margin-top:20px;">'+
                            '<div class="progress-bar" id="tracking1" role="progressbar" aria-valuenow="60" aria-valuemin="0" aria-valuemax="100" style="width: 0%;transition-duration: 3s;">'+
                                '<span style="visibility:hidden">Laufendes Tracking 950.325</span>'+
                            '</div></div>');





    $("#tracking").css("width","100%");
    setTimeout(function(){$("#tracking1").css("width","100%");},10)
});