2012-03-23 22 views
0

私はリアルタイムの進行状況インジケータを取得しようとしています。以下のコードスニペットで リアルタイム進捗インジケータ

は、私は、Webサービスのコールバック関数から取得アイテム数に基づいてDIVの幅を設定しようとしています。ループのための私は、背景色で塗りつぶさdivProgressIndicatorを見て、私は進行状況を確認することができません実行された後、上記のコードに示すように

for (i = 0; i < data.length; i++) { 

     table += '<tr>'; 
     table += '<td>' + data[i].ItemId + '</td>'; 
     table += '<td></td>'; 
     table += '<td>' + data[i].Name + '</td>'; 
     table += '<td>' + data[i].Unit + '</td>'; 
     table += '<td><input type=text value=' + data[i].Quantity + '></td>'; 
     table += '<td>' + data[i].Brands + '</td>'; 
     table += '<td><img border=0 src=../images/Delete_icon.gif></td>'; 
     table += '</tr>'; 

     $('#divProgressIndicator').width((100 * (i/data.length)) + '%'); 

    } 

。 私は、forループでこれを達成することができますか私は他のいくつかのことを使用する必要があります。 よろしくお願いします。

答えて

0

最初のことは、各繰り返しで#divProgressIndicatorを更新していることです。最後に経過すると '(100 * 1)%'が100%となり、 div。あなたが必要なもの

は%(100 *行われた行の行/数の(総数))これを持っていることです。これはforループの外側で行われます

+0

私の誤解のために申し訳ありませんが、多分私は、最初の場所での問題点は誤解が、ループの最後の繰り返しで、最終的な幅を設定し、ループの外に設定の違いは何ですか? –

+0

ループがそれを介して最終的なパスで、データを反復されるが、このように幅の割合を計算する:ループスルー回数/ループ内のアイテムの合計数は100 *これは1に簡略化することができます* 100であるので、進行状況が何であっても、100に設定されます。これも誤解している可能性があります。私は、ユーザーがページにアクセスしたときにプロセスがまだ完了していないという考えからこれに近づいていると思います。 –

0

独自のプログレスバーを書くのではなく、jqueryプログレスバーを使用することをお勧めします。詳しくはhttp://docs.jquery.com/UI/Progressbarを参照してください。

あなたのコードに関して、私は正確なHTMLと正確な問題は何かを完全には理解していませんが、私の考えではプログレスバーを作成するには2つのdivが必要です。 2番目のdivは色を持つ必要があり、進行状況に基づいて幅を変更する必要があります。

このような設定をしていて、バックグラウンドdivのみが表示されている場合は、バックグラウンドdivがプログレス・ディビジョンの上に表示され、その解決策はバックグラウンドdivをトランスペアレントにするか、z-indexをより高い値に設定してプログレス・ディグを一番上に設定します。

関連する問題