我相信這肯定是一個常見問題,但經過多次搜索後我找不到答案。 我有一個twitter-bootstrap加載欄,我想在每個計算階段完成後更新。更新jQuery中的加載欄.each()
這裏是更新加載欄的功能:
var lb = $('#loading-bar');
var lbc = 0;
function increment_loading_bar(pc) {
setTimeout(function(){
lbc = lbc + pc;
lb.width(lbc+"%");;
}, 1);
}
而且調用內。每()循環是
var inc = 100/array.length();
$.each(array,function(index,element){
increment_loading_bar(inc/2);
//
//Gnarly processing ....
//
increment_loading_bar(inc/2);
}
但是更新了吧,這只是更新畢竟處理完成。在執行代碼時如何強制重新繪製條形圖?
非常感謝!
即時錯過一些代碼,因爲你仍然在計算寬度從var inc不會改變你的樣品 – derki
inc是增量而不是絕對值。變量lbc存儲條的當前百分比寬度,並在每次調用increment_loading_bar時由pc遞增。 – Oddbodbloke
以及你知道什麼是你想完成的長度,簡單的存儲array.length,並且每次迭代更新進度條到(iteration/array.length)並且移除該超時值,並且你還應該Math.round寬度值 – derki