2016-04-03 68 views
0

我想在排序之前顯示一個簡單的加載消息,但排序後顯示從無變爲塊,即使我之後調用排序。我甚至嘗試過使用setTimeout(2秒)來改變顯示,然後調用一個虛擬函數來排序這些東西。style排序後改變數組排序

function sort(i) { 
    document.getElementById("loading").style.display = "block"; 
    array.sort(function(a, b) { 
     return a[i].localeCompare(b[i]); 
    }); 
} 
+0

你可以分享可執行的演示/片段或[JSFiddle](https://jsfiddle.net/)嗎? – Rayon

回答

1

瀏覽器不急於重畫頁面,而JS正忙於工作(假設可能會有其他DOM更改,他們應該批處理重新繪製)。

您需要釋放事件循環以允許在兩條語句之間重新繪製。

將呼叫轉移到array.sort中並在延遲後調用它(例如使用setTimeout或​​)。

+0

使用setTimeout實際上工作,我只需要將函數放入參數中,而不是調用函數。毫秒量爲0.謝謝! –