javascript
  • jquery
  • jquery-ui
  • jquery-ui-progressbar
  • 2017-04-07 15 views 0 likes 
    0
    $.get('jobs', { 
        }, function (responseText) { 
         rt = JSON.parse(responseText); 
         console.log(rt); 
         for (i = 0; i < rt.length; i++) 
         { 
          $("#jobs").append("<tr><td><div id='progressbar"+i+"' class='progressbar'></div></td></tr>"); 
          pval = (rt[i][2]/rt[i][1]) * 100; 
    
          $("#progressbar"+i).progressbar({ 
           value: pval, 
           max: 100 
          }); 
    
         } 
    
        }); 
    

    このコードを書いて、テーブルの各行のtdにプログレスバーを作成しました。私は1行のためにそれをやっていたが、それは正常に働いたが、私のDbに複数の行を追加した後、値が正確に来ていない。 pvalの値が100であっても、プログレスバーの1/4のようになります。Jquery UIプログレスバーに進捗状況が表示されない

    +0

    '.get()'を使用して要素を取得するのか、AJAX呼び出しですか? – Twisty

    答えて

    0

    問題を再現できませんでした。投稿を編集し、詳細、サンプルデータ、およびコンソールで生成されたエラーを追加することができます。 https://jsfiddle.net/Twisty/0v4q5a8z/

    HTML予想通り

    var progress = [ 
        ["p1", 100, 100], 
        ["p2", 100, 75], 
        ["p3", 100, 22] 
    ]; 
    
    function getProgress(source, target) { 
        /* Ajax Post used for Example purposes 
        ** Example response: 
        ** Array [ 
        ** ["p1", 100, 100], 
        ** ["p2", 100, 80], 
        ** ["p3", 100, 75] 
        ** ] 
        */ 
    
        $.ajax({ 
        url: source, 
        data: { 
         json: JSON.stringify(progress) 
        }, 
        type: "POST", 
        dataType: "json", 
        success: function(responseText) { 
         var rt, pval; 
         rt = responseText 
         console.log(rt.toString()); 
         for (i = 0; i < rt.length; i++) { 
         target.append("<tr><td><div id='progressbar-" + i + "' class='progressbar'></div></td></tr>"); 
         pval = (rt[i][2]/rt[i][1]) * 100; 
         $("#progressbar-" + i).progressbar({ 
          value: pval, 
          max: 100 
         }); 
         } 
        } 
        }); 
    } 
    
    $(function() { 
        $(".button").button(); 
        $("#getProgress").click(function(e) { 
        e.preventDefault(); 
        getProgress("/echo/json/", $("#jobs")); 
        }); 
    }); 
    

    このテストでは、動作します

    <div class="ui-widget"> 
        <a href="#" id="getProgress" class="button">Get Progress</a> 
        <table id="jobs" width="100%"> 
        <tbody> 
        </tbody> 
        </table> 
    </div> 
    

    はJavaScript:

    は、私は次のテストを作成しました。あなたのコードはあまり強くない可能性があります。関数は:

    function getProgress(source, target) { 
        $.getJSON(source, function(responseText) { 
         var rt, pval; 
         rt = responseText 
         for (i = 0; i < rt.length; i++) { 
         target.append("<tr><td><div id='progressbar-" + i + "' class='progressbar'></div></td></tr>"); 
         pval = (rt[i][2]/rt[i][1]) * 100; 
         $("#progressbar-" + i).progressbar({ 
          value: pval, 
          max: 100 
         }); 
         } 
        } 
        }); 
    } 
    
    +0

    潜在的な改善とタイマーが追加されました:https://jsfiddle.net/Twisty/0v4q5a8z/6/ – Twisty

    関連する問題