У меня есть таблица, которая динамически заполняется от 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
, но это не решило бы реальную проблему. Сортировка медленная. Какой способ быстрее это отсортировать?
Вместо того, чтобы начинать с html <table>
, как я сказал, он заполняется динамически, поэтому у меня есть Array
, который содержит html. 1 предмет за <tr>
(не отсортировано)