进度条无法正确重置

Progressbar won't reset properly

我在重置进度条并继续计数时遇到一些困难。在我的代码中,我有一个按钮可以打开一个 JQuery ui 对话框,该对话框带有一个进度条,该进度条计数到 100% 然后关闭。当我再次点击按钮重置进度条时,它只是停留在 0% 而没有更新。我的代码中缺少什么吗?

这是我的对话框

$( "#dialog" ).dialog({
    autoOpen: false,
    dialogClass: "no-close", 
    draggable: false, 
    resizable: false, 
    height: 200, 
    width: 200          
});

我打开对话框的按钮

$("#button").click(function() {
    $('#progressbar').progressbar('option','value', 0);
    $( "#dialog" ).dialog( "open" );
});

我的进度条代码

$(function() {
        var progressbar = $( "#progressbar" ),
        progressLabel = $( ".progress-label" );

        progressbar.progressbar({
            value: true,
            change: function() {
            progressLabel.text( progressbar.progressbar( "value" ) + "%" );
        },

        complete: function() {
            progressLabel.text( "Complete!" );
            setTimeout("$('#dialog').dialog('close')",3000);

            }
        });

           function progress() {
          var val = progressbar.progressbar( "value" );
          progressbar.progressbar( "value", val + 2 );
          if ( val < 99 ) {
            setTimeout( progress, 80 );
          }
        }
        setTimeout( progress, 2000 );
});

编辑:这是 html

<div id="dialog" title="Progress Bar">
    <div align="right">
        <small id="name">Name</small>
    </div>
    <small id="temp">Temp</small><br />
    <small id="temp2">Temp2</small><br /><br />
    <div id="progressbar"><div class="progress-label">Loading...</div></div>
</div>

fiddle(别人开始)

点击按钮后需要再次启动函数progress()。您还应确保 progress() 函数在按钮单击事件的范围内。

$("#button").click(function() {
     $('#progressbar').progressbar('value', 0);
     $( "#dialog" ).dialog( "open" );
     //restart
     progress();
});