У меня есть таблица, которая динамически заполняется из FullCalendar
.
Проблема в том, что FullCalendar
не заботится о своем первоначальном порядке.
Таблица выглядит так:
<table id="caltbl">
<thead>
<tr> <th> </th> <th> Date </th> <th> hours </th> ... </tr>
</thead>
<tbody>
<tr> <td class="sortnr">1</td> <td></td> ... </tr>
<tr> <td class="sortnr">3</td> <td></td> ... </tr>
<tr> <td class="sortnr">2</td> <td></td> ... </tr>
<tr> <td class="sortnr">4</td> <td></td> ... </tr>
</tbody>
</table>
Первая из каждой строки содержит номер, на котором должна быть отсортирована таблица.
У меня был этот код для его сортировки:
var rows = $('#caltbl > tbody').children('tr').detach();
for (var counter = 1; counter<=rows.length; counter++) {
$(rows).each(function(index) {
if ($(this).find(".sortnr").text()==counter){
$('#caltbl > tbody:last').append($(this));
}
});
}
Это отлично работает в Firefox, но вызывает у меня серьезную головную боль в Internet Explorer, потому что есть более 500 наименований и зависает. Я мог бы добавить setTimeout
, но это не решило бы настоящую проблему. Сортировка выполняется медленно. Что такое более быстрый способ сортировки этого?
Вместо того, чтобы начинать с <table>
html, как я уже сказал, он заполняется динамически, поэтому у меня есть Array
, который содержит html. 1 элемент за <tr>
(несортированный)