javascript
  • jquery
  • jquery-ui
  • jquery-ui-progressbar
  • 2017-04-07 112 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

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

    的JavaScript

    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")); 
        }); 
    }); 
    

    這個測試按預期工作。你的代碼可能不那麼激烈。函數可能是:

    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

    相關問題