2016-04-03 51 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.谢谢! –