2013-06-11 5 views
1

У меня есть таблица, которая организована с папками. Я добавил контекстное меню, в котором они могут перемещать строку в другую папку. У меня есть код для правильного изменения ячеек выбранной строки, но теперь мне нужно прибегнуть к таблице, чтобы строка отображалась в новой папке.Сортировка таблицы по имени в ячейке

var sort = $("#hiddenresult tr.events").sort(function (a, b) { 
    return ($(a).text().toLowerCase() == $(b).text().toLowerCase()) ? 0 :  ($(a).text().toLowerCase() < $(b).text().toLowerCase() ? -1 : 1); 
             }); 
$('#hiddenresult').html(sort); 

У меня есть код, который сортирует таблицу по первой ячейке. Есть ли способ заставить это выбрать ячейку по классам для сортировки? Я пробовал $(a).find('td.folderName') ... но чтение здесь происходит медленно, и я не получил ошибку, но таблица не сортировала. Строка появилась в таблице в предыдущей позиции с новым именем папки. Я попробовал $(a 'td.folderName'), но компилятору не понравился этот код.

+0

JSFiddle будет оценен, чтобы помочь вам быстро. –

+0

http://jsfiddle.net/qDZXh/ Вот простая таблица, чтобы показать, что я ищу, пытаясь сортировать по 3-му столбцу (имя папки) –

ответ

1

Сортировка сама по себе не так медленна, как браузер перерисовывает таблицу каждый раз, когда что-то меняется. Я рекомендую вытащить таблицу из DOM, сортируя ее, а затем вернув ее на место, чтобы браузер отображал ее только один раз.

var trs = $('#hiddenresult tbody tr.events').detach(); 
trs.sort(function(a, b) { 
    var atxt = $(a).find('td.folderName').text().toLowerCase(); 
    var btxt = $(b).find('td.folderName').text().toLowerCase(); 
    return (atxt >= btxt) - (atxt <= btxt); 
}); 
$('#hiddenresult tbody').append(trs); 

Fiddle: http://jsfiddle.net/qDZXh/2/

Edit: отсоединение и добавление сделает таблицу мерцание или исчезает, когда таблица сортировки. В качестве альтернативы вы можете использовать .clone(true), чтобы скопировать труп со всеми его событиями и т. Д., Затем используйте .replaceWith в конце для их замены.

+0

Отредактировано на скрипке! –

+0

Уборка скрипки! http://jsfiddle.net/qDZXh/2/ –

+0

только что увидел вашу скрипку :) –

Смежные вопросы