Максимум простоты в использовании скрипта - это возможность максимального произвола со стороны пользователей. Например, пользователи могут обозначить явно элемент THEAD, а могут и не обозначить – тогда наш скрипт сам создаст этот элемент.

Сортировщик HTML таблиц: концепция и «нулевой цикл»

У кого sorter тинее?

В процессе работы над сортировщиком (как и над любой другой программой) приходится многократно обращаться к разным вариантам, существующим в виде открытых решений в Сети. И очень уж сильно заел меня TinyTable с сайта leigeber.com. Маленький, ..ка, вёрткий, многофункциональный, и в 10 раз меньше других известных сортировщиков. Вот он, прямо здесь: Tiny sorter.

А вот наш, советский Simple Table Sorter. И как сравнивать? «Наш быстрее, зато у Tiny столбцы в полоску?» Нужна концепция HTML-сортировщика: необходимый минимум функций и возможный максимум.

Минимальный набор для сортировки HTML-таблицы

  1. Сортировщик должен сортировать строки, сравнивая друг с другом значения выбранной колонки.
  2. Сортировщик должен как-то узнавать о выбранной пользователем колонке. Первая мысль – по щелчку мышкой на выбранном заголовке. Она же последняя – все HTML-сортировщики так устроены, в меню браузера нет, как в Excele, специальной кнопки "Сортировать". И это и к лучшему, так гораздо удобнее (нагляднее).
  3. Пользователь должен как-то узнавать о том, что можно щелкнуть по заголовку колонки, и таблица будет отсортирована: 1) курсор в виде «пальца» (pointer), 2) стрелки рядом с текстом заголовка.
  4. Результат последовательной сортировки нескольких колонок должен быть интуитивно очевиден, как в Excele: «сортировка в отсортированном», а не каждый раз из первоначального вида таблицы.
  5. Пользователь должен видеть, что какая-то колонка была раньше отсортирована в определённом направлении: 1) всплывающая подсказка «Отсортировано по убыванию» (title), 2) цвет стрелок – более насыщенный у отсортированных позже, 3) стиль заголовка – мы добавляем курсив (jquery.sorter – подчёркивание).
  6. Должна обеспечиваться корректная сортировка чисел: 1, 2, 10 (а не 1, 10, 2).
  7. Скорость сортировки должна быть не меньше 500 строк в секунду, иначе пользователи (и за ними веб-мастера) предпочтут сортировку на сервере с перезагрузкой страницы. Короче говоря, для небольших таблиц (50-100 строк) сортировка должна быть мгновенной.
  8. Подключение системы сортировки к выбранной таблице на нужной HTML-странице должно быть простым и логичным.

Эта концепция отличается от концепции Tiny sorter следующими моментами:

  1. Tiny sorter использует исключение колонок из сортировки (с помощью атрибута class='nosort'); мы считаем, что в минимальной конфигурации это не нужно.
  2. Tiny sorter «жёстко» парсит строки на предмет поиска валюты (у, буржуи!:-). У нас же числовая сортировка используется, только если первой в ячейке идёт цифра, и только целые значения (parseInt, а не parseFloat).
  3. Tiny sorter использует «зебру» (раскрашивает чётные и нечётные строки таблицы по-разному). При простом движке, как у нас, это может сильно влиять на скорость (в ИЕ), да и Kolyaj говорит, что зебра не нужна... Для широкой таблицы важнее «подсветка» строк при наведении мыши (мы её используем – на CSS).
  4. Tiny sorter не помечает отсортированные раньше колонки (ни title, ни стрелками).

Сортировка по нескольким колонкам: как должна вести себя программа? Если отсортировать столбец 1, после этого сортировка столбца 2 должна идти из исходного состояния таблицы, или из результата первой сортировки? Мы (и TinyTable) выбираем последнее. Ну, и не надо нажимать Shift для сортировки по нескольким столбцам – это для слишком умных пользователей, настолько умные пользователи и так сообразят, как это сделать. Вот, например, таблица городов, надо последовательно отсортировать её по всем трём колонкам – части света, страны, города.

Часть светаСтранаГородДеньги
ЕвропаФранцияРуан100 р.
ЕвропаФранцияПариж90 р.
ЕвропаГерманияДрезден91р.
ЕвропаГерманияБерлин10 р.
АзияКитайШанхай1.1 р.
АзияКитайПекин2.03 р.
АзияИндияБомбей22.5р.
АзияИндияДели22.4 р.

Ну и щёлкайте последовательно по всем трём столбцам, только в обратном порядке: Город, Страна, Часть света – таблица окажется отсортированной, как нужно.

Подключение скрипта сортировки к HTML-странице

Надеемся, что для нашего Простого Сортировщика достигнута предельная простота подключения:

  1. Нужно вписать в HEAD страницы две инструкции: <link rel='stylesheet' href='static/tabsort0.css' type='text/css'> и <script type='text/javascript' src='tabsort0.js'></script>.
  2. Добавить тэгам сортируемых таблиц атрибут class='sortable'.
  3. Ну, и скопировать в папку страницы на сервере файлы tabsort0.css, tabsort0.js и папку img из архива Simple Table Sorter.

Подключать TinyTable сложнее: кроме перечисленных действий нужно ещё вписать в конец HTML-страницы скрипт с инструкцией, инициирующей создание объекта table.sorter и запускающую функцию подготовки таблицы с параметром – ID элемента TABLE. Да. А если с ID что-нибудь напутаешь, выйдет ошибка.

У нас круче: ко всем таблицам с класснейм sortable сортировщик «цепляется» сам; а если надо после згрузки страницы подключить сортировщик к динамически созданной таблице, это можно сделать, добавив с новой таблице атрибут className = 'sortable' и вызвав функцию prepTabs с параметром – ссылкой на новый элемент – таблицу, примерно так:

Что внутри (движок сортировки)

Наш javascript-код сортировки HTML-таблиц так прост, что об этом даже и говорить смешно. Две функции, 57 строк. И куча технологических хитростей. Вот некоторые из них.

  1. Нулевой цикл – это максимум простоты, то есть возможность максимального произвола со стороны пользователей скрипта. Например, пользователи могут обозначить явно элемент THEAD, а могут и не обозначить – тогда наш скрипт сам создаст этот элемент. А у TinyTable, кстати, с этим проблема (если элемент THEAD уже есть в таблице).
  2. Наш скрипт насортирует даже «кривую» таблицу (в которой часть ячеек может отсутствовать).
  3. Мы не анализируем глубину вложенности HTML-элементов в ячейках таблицы; мы не используем для получения значений из таблицы и простой метод cells[i].firstChild.nodeValue; мы просто «обдираем» HTML-тэги из innerHTML ячейки (по аналогии со strip_tags в PHP).
  4. Мы не используем пользовательскую функцию сортировки; мы создаём сортировочный массив sarr таким образом, что он правильно сортируется просто функцией sort() – элемент массива sarr выглядит как [cell_value, [object HTMLRowElement]].
  5. Наконец, мы без больших усилий (по сложности кода и нагрузке системы) сортируем числа, и даже валюту, если она российская.

Наш скрипт не быстрее TinyTable или jquery.sorter – может быть, на доли секунды медленнее. Но он рассчитан на таблицу в 100-200 строк; при таких объёмах разница в скорости не играет роли (её трудно заметить).

D.M., admin

Комментарии

Дилетант 14.05.2013 02:47:42

Oleg, ну, например, можно в цикле серверного скрипта, выводящего таблицу, поставить счётчик $i, увеличивающийся для каждой строки на единицу, и если $i % 2 (нечётное), добавлять тэгу tr className: <tr class="odd">

Oleg 18.03.2013 20:30:02

Ну насчет желания дизайнера тут не поспоришь. Я просто высказал некие усредненные ожидания (на мой взгляд) конечного пользователя от том, как он желает "видеть" таблицу. А вот за ссылку о том, где почитать, как присылать зебру готовой с сервера или на работающий скрипт был бы весьма признателен.

Oleg 26.02.2013 20:51:48

Самый лучший скрипт из тех, что удалось найти для сортировки небольших таблиц. Только вот отказ от "зебры" в пользу подсветки строки, на мой взгляд, на таблицах малого размера (до 50 строк) сомнителен. Обычно такие таблицы "просматривают глазами", а не "проводят по ним пальцем", и "зебра" в этом случае была бы более кстати.

==============================================

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

И кстати, зебру можно присылать уже готовой с сервера, она может быть вполне независимой от js.

лесник 01.09.2012 16:23:25

San, в приведённом примере всё сортируется нормально. Поле datrec там – обычная строка.

Файл tabsort0.js, кстати, надо вам надо перекодировать (страница в windows-1251, а скрипт сейчас в utf-8)

San 31.08.2012 20:12:23

Возможно не ново, у скрипта версии 0.1 замечена неправильная сортировка по дате... http://ais.san.org.ua/search/0.1/limit200.htm – модифицированный пример, поле "datrec".

Игорь 23.06.2012 14:28:25

Доброго времени суток. Спасибо большое за скрипт, очень пригодился. Установил, все хорошо. устраивает на все 100. Но возник один вопрос. У меня в таблице, есть две строки(tr), скажем с классом "title". Так вот, подскажите пожалуйста, как сделать так что б при сортировке скрипт не трогал эти строки? что б они оставались на своих местах, а все другое сортировалось. Заранее благодарен.

лесник 04.07.2012 20:17:31

Игорь, скрипт не может пропускать строки при сортировке. Такую возможность надо добавлять руками. В цикле создания массива для сортировки (начинается со строки for (j; j < l; j++) {) надо добавить условие – в вашем случае проверку на className == 'title', и при истинности этого условия не добавлять строки в массив.

лесник 13.06.2012 14:09:17

Alexander, для поля типа ip нужен отдельный обработчик, у меня его нет. Очевидно, что такой тип данных нельзя сортировать просто как строку или как число.

лесник 13.06.2012 14:06:08

VILor, версия 2.1 - один из экспериментов, я не использую его на практике и не дорабатываю. Рабочие - два направления: 0.01, 0.02, ..., они описываются в этой статье (Simple Table Sorter), и 1.01 (tabsort1_01.aspx, Big Table Sorter). В версии с единицей впереди есть фильтры и постраничный вывод (в этом отличие от версий, начинающихся с нуля). Если в этих версиях что-то не работает, я исправляю. В других - нет.

Alexander 29.05.2012 12:41:52

Неправильно сортирует поле IP (x.x.x.x). Непонятно, кстати, почему.

VILor 24.05.2012 21:19:35

Создал динамически таблицу, подключил твой скрипт сортировки. Я только начал изучать javascript, если поможешь разобраться будет просто здорово. Проверял IE6,0 и Google Chrome. В версии 2.1 размножается фильтр, на одну таблицу две строки фильтра, если добавлять таблицы на страницу на каждую последующию +1 сторка в фильтре. При этом сортируются стороки, к которым добавляется строка из секции TFOOT html таблицы. При этом одна строка из секции TFOOT остается на месте (сортируется ее дупликат) В версии 1 все хорошо (мне подходит больше из-за наличия страниц), но при добавлении двух таблиц, когда щелкаешь по стрелкам перехода страниц, записи в таблице переходят в той, которая была активной последней, независимо от того в какой таблице пытаемся перелистнуть страницу.

лесник 13.02.2012 19:46:16

Nekich,

для сортировки русской даты надо установить столбцу тип данных datru (можно в версии http://ir2.ru/static/sort0.03/table404.htm).

А пример с пустыми столбцами надо смотреть, так, заочно сказать что-то трудно.

лесник 13.02.2012 19:41:49

Лучше указывать точные адреса примеров, а то я не могу понять, о чём речь. И лучше работать с последними примерами, упоминающимися на сайте. Последняя статья о сортировке была – tabsort004.aspx. Предпоследняя, кажется, – tabsort003.aspx

qpayct 07.02.2012 03:08:46

отличный скрипт. спасибо. использую версию 0.01

подметил глюк в первой и в последней версиях(другие не проверял): если кликнуть : 1.по любому столбцу 2.по столбцу слева от кликнутого в 1-ом 3.и опять по 1-ому – отсортирует по порядку 2-го столбца. пробовал обе версии под свою талицу – глючат. самостоятельно не могу найти в чём проблема, но подметил, что таблица на этой странице работает без глюка, а таблица в последнем примере с глюком.

Archil 06.02.2012 05:22:27

Поставил скрипт и все сортируется, но появился небольшой баг – справа от столбцов появились пустые столбцы, подскажите как с этим бороться?

Nekich 03.02.2012 09:59:11

Ребят, спасайте :D Сортировка на высоте! Но, возникла проблема.. Некорректно сортируются некоторые строки, я думаю из-за двоеточий и знаков "•" в строках, как решить эту проблему ? И ещё, но уже менее важный вопрос, каким способом можно отсортировать дату, вида: "Январь 2012"

лесник 04.09.2011 20:02:02

Михаил,

Вот, сделал в новой версии предопредлённую сотрировку:

http://ir2.ru/static/sort0.03/table400.htm (пример)

http://ir2.ru/static/sort0.03/SimpleTableSorter0.03.zip (дистрибутив)

В начало файла tabsort0.js добавлена переменная var init = {2:'desc'}. В объект (в фигурных скобках) можно добавлять через запятую пары Индекс:Тип. Индекс – номер столбца (начиная с нуля), тип – 'asc' (прямой порядок) или 'desc' (обратный порядок).

Можно также указывать сортируемый первым столбец прямо в ячейке заголовка, в атрибуте axis: <th axis='num::desc'>

По рекомендации AleXH во все версии Простого сортировщика добавил сброс состояния таблицы (reset) по Ctrl+Click (на заголовчных ячейках).

Михаил 04.09.2011 06:57:59

Все, проблемку решил. Табличку просто нужно подгрузить через appendChild и все заработает как часики.

Твой код просто супер, нигде на просторах инета такого кода нет, везде с какими то недостатками. СПАСИБИЩИЕ тебе ))) Так держать.

По поводу других пожеланий – никого не слушай, кому нужно – тот при желании сам подгонит под себя, колоссальная работа за них уже проделана, пусть не леняться.

Михаил 03.09.2011 23:49:17

А может мне кто нибудь объяснить поподробней как решить мою проблему???

Суть вот в чем: у меня таблица динамически подгружается в index.php из стороннего файла table.php, если я напрямую обращаюсь к table.php, то все гуд, а вот у подгружаемой в index.php – нет, таблица отображается, а сортировки не происходит ((( Как быть???

У Вас написано, что можно цеплять и к динамически созданной таблице, ток вот она у меня создается не в Java, а в php. Помогите плиз

лесник 27.08.2011 20:06:26

1) Я не знаю, должен ли цвет стрелок оставаться неизменным при многих кликах по одному столбцу. Ну, поскольку мне всё равно, а вам зачем-то надо, сделал по-вашему.

2) Не, скачивать с ifolder мне не понравилось. Если хотите, можно отправлять файлы мне на почту stopkran@inbox.ru. Или на доску объявлений irkutsk.ir2.ru (это не очень обычно, но я не против такого использования сайта).

3) Сделал подсветку столбцов. Насчёт увеличения насыщенности большие сомнения. Это всё-таки фон, буквы могут быть плохо видны на тёмном. Ну, вы правы в том, что каждый это может подправить для себя в CSS, как хочет.

4) В архив обновления пока не добавил, только в "рабочие" файлы http://ir2.ru/static/tabsort0.css, http://ir2.ru/static/tabsort0.js. Да подсветка столбцов идёт в разрез с концепцией "минимализм + скорость". Скорость заметно падает. Конечно же, только в IE, смотрите на примере таблицы в 1000 строк: http://ir2.ru/static/limit1000sort0.htm. То есть в IE в принципе всё это работает медленнее, но, если на моём компьютере (Пентиум, 2.5 ГГц) простая сортировка 1000 строк в IE 9 занимает 1.5-2 секунды, то сортировка с подсветкой столбцов – примерно вдвое больше, а 3-4 секунды – это уже стрёмно, это, по сути, провал концепции.

5) Какой вообще смысл сортировать таблицу в 1000 строк минимальным сортировщиком? Ведь javascript-разбивка на страницы решает проблему скорости даже в IE. И работать с таблицей удобнее (всё равно вы не выведете на один экран все 1000 строк, надо листать в любом случае).

Alex 27.08.2011 11:35:29

Может есть возможность подсвечивать столбцы по которым выбрана сортировка цветом? Оттенок цвета сделать более насыщенным у отсортированных позже. Желающие изменить оттенки смогут "подкрутить" их в css.

Если мои предложения идут вразрез с позиционированием данной версии сортировщика, то можно эти куски кода в js закомментировать. Тот, кому понадобится данный сервис, сможет их попросту раскомментировать.

Есть желание сортировать этой версией сортировщика таблицу с ~1000 строк.

Alex 27.08.2011 10:07:36

В общем я так и думал, до написания вопросов я ознакомился с более "продвинутыми" версиями.

В текущей реализации js имеется недочёт – при клике больше одного раза подряд на один и тот же столбец инкрементируется переменная a_color, в то время как в этом случае она должна оставаться неизменной.

Для отображения направления сортировки, я использую вместо стрелок цифры на жёлтом и зелёном фоне http://ifolder.ru/25408081 (sortable.7z, 623B)

лесник 27.08.2011 04:39:10

Alex, ну, если "в пределах пересекающихся множеств" :-), то 8 картинок вместо десяти – "каприз художника". То есть это демонстрация "открытости" системы: каждый подгоняет её под себя, как хочет (картинок может быть и больше, и меньше). Мои глаза просто не различают уровни темноты дальше "восьмого" оттенка. Гм, а может, там и картинок-то новых нет (8-9-10 повторяются), я уже не помню.

Атрибуту axis="num|str|date" отводится очень большая роль, но у же в следующей жизни Сортировщика – в Big Table Sorter'е (tabsort1.aspx). В текущей версии (Simple Table Sorter) я некоторое время колебался, потом решил оставить определение типов автоматическим, без участия пользователя (здесь все типы сводятся к строковому). В Большом же Сортировщике типы должны быть указаны явно (а то работать не будет).

Насчёт Зебры тоже были колебания: начались они с колоссальных тормозов в старых IE при любых попытках менять оформление "по ходу" сортировки; завершились пониманием того, что Зебра в принципе не очень нужна – важнее "подсветка" при наведении мыши. Подсветка, кажется, работает во всех современных браузерах (на CSS, псевдо-класс hover). "Остатки" Зебры не убрал по той же причине, что и "зачатки" axis'а – кому надо, легко могут добавить для себя Зебру самостоятельно.

Идея текущей версии – скорость и компактность, ничего лишнего. И это только начальный вариант заинтересовавшего меня направления. В статье tabsort1.aspx обосновывается невозможность перехода к более сложному функционалу работы с таблицами без скачка. Ну, и "максимальная" функциональность работы с таблицами реализована сейчас, например, в версии 1.3 (http://ir2.ru/static/BigTableSorter.zip) – там есть и сохранение состояния (в куки), и режим отладки с выводом временных интервалов для каждой операции... Ещё пара статей на этом сайте о возможностях применения функций сортировки и фильтрации HTML-данных: tabular_data_control.aspx, javascript_bd.aspx.

Alex 26.08.2011 19:45:08

D.M., admin, excellent! :) Работает как в FF 3.6.20, так и в Opera 11.50.

Имхо теперь всё правильно – в пределах пересекающихся множеств сохраняется монотонность убывания, либо возрастания сортировки. Конечное направление сортировки в пределах пересекающихся множеств определяется чётным, либо нечётным количеством столбцов отсортированных в обратном направлении.

До конца не понял следующие моменты: 1. В js в отличие от css, почему-то задействованы только 8 картинок вместо 10: ----------------- if (a_color < 8) a_color++ -----------------

2. Какая роль отведена в скрипте html тегам axis="num|str|date", id="t"? ----------------- var el, th, cs, c, cell, axis, ts = (t && t.className) ? [t] : document.getElementsByTagName("table") -----------------

3. В css зебра заявлена, но не поддержана в js. ----------------- .sortable .even {background-color:#f0f0f0;} .sortable .odd {background-color:#fff;} -----------------

лесник 26.08.2011 17:25:07

Alex, ещё раз спасибо за тестирование. Версии пока назначать нет смысла, так как замеченное вами – явные баги. То есть это ещё пока даже и не релиз, типа альфа-версия. Вот если после очередных исправлений не найдёте ошибок, можно будет и версию дать, что-нибудь вроде 1.00000001.

Ошибки исправил, в архив добавил. Там дело было в том, что javascript многозначные (после запятой) числа по умолчанию отображает в виде 1.16e-7. Надо было сразу добавить toFixed(), а я поторопился. Величина таблицы тут ни при чём: у меня изначально в тестовом варианте таблица в 200 строк, но там нет пустых значений или повторяющихся в достаточном объёме (чтобы обнаружить проблему).

Ваша таблица для проверки: table150.html (я проверял не по группам, так как не понял, что это такое, а по первому столбцу идентификаторов).

Alex 25.08.2011 00:28:45

Может в скрипт и css добавить в первую строку комментарии с номерами версий? Речь пойдёт о предыдущем варианте js без миллиарда. Производим сортировку в таблице выше (table.html из table.7z) в FF. Нажимаем: обновить страницу – ID [отсортировано по возрастанию] – Sellers [отсортировано по возрастанию] – Sellers [отсортировано по убыванию]. И тут мы видим, что столбец Sellers отсортирован правильно, но внутри групп Sellers также произведена сортировка, что в корне неверно, так как сортировка внутри групп должна сохраняться неизменной.

Alex 24.08.2011 21:38:34

D.M., admin, спасибо за оперативность. В zip лежит старый вариант js, я пробовал на новом, но результат отрицательный для таблиц с большим количеством строк. Причём теперь не работает и в FF, в Опере хоть и стало лучше, но недостаточно. Проверял на http://ifolder.ru/25355882 (table.7z 2.18kB)

лесник 22.08.2011 17:43:47

Alex, я ваш должник. Баги исправлены в архиве (http://ir2.ru/static/SimpleTableSorter.zip), и можно посмотреть в примере http://ir2.ru/static/test-sort0.html.

Где-то ведь я что-то такое видел у конкурентов! Но не обратил в своё время внимания. Оказывается, ИЕ и Опера просто ВООБЩЕ не сортируют одинаковые значения, а хватают их как попало. Для учёта этой особенности пришлось в сортируемом массиве добавить к каждому сортируемому значению его порядковый номер, делённый на миллион (или миллиард?.. – в общем, много-много нулей после запятой, и в конце число).

Alex 22.08.2011 01:37:24

FF 3.6.20 – палец ошибся ) Таблица: 111 222 331 412 521 632 Код: <table class="sortable"> <thead> <tr><th>A</th><th>B</th><th>C</th></tr> </thead> <tbody> <tr><td>1</td><td>1</td><td>1</td></tr> <tr><td>2</td><td>2</td><td>2</td></tr> <tr><td>3</td><td>3</td><td>1</td></tr> <tr><td>4</td><td>1</td><td>2</td></tr> <tr><td>5</td><td>2</td><td>1</td></tr> <tr><td>6</td><td>3</td><td>2</td></tr> </tbody> </table>

Alex 21.08.2011 20:54:25

2 D.M., admin Проверялось в FF 3.6.30, Opera 11.50, IE 6.0. Скрипт simple сортирует правильно только в FF. Например входная таблица (ABC заголовки столбцов): A B C 1 1 1 2 2 2 3 3 1 4 1 2 5 2 1 6 3 2 Последовательно кликаем на ABC. FF 3.6.20, результат правильный: A B C 1 1 1 5 2 1 3 3 1 4 1 2 2 2 2 6 3 2 Opera 11.50, результат неправильный: A B C 1 1 1 5 2 1 3 3 1 4 1 2 6 3 2 2 2 2 IE 6.0, результат неправильный: A B C 3 3 1 5 2 1 1 1 1 6 3 2 2 2 2 4 1 2

Может у вас есть вариант скрипта учитывающий косяки IE и Opera?

Иван 25.06.2011 17:05:55

Огромное спасибо, просто подключается, доступно объяснил человеку, который в скриптах ничего не понимает. css подправил под себя и все .

oldFriend 28.03.2011 21:09:31

В общем, причину не нашел, но использовав "китайские хитрости" сделал, как мне надо. Вопрос снят :)

oldFriend 28.03.2011 09:53:42

Вы всё правильно поняли. Что-то у меня значит не так... Хотя что может быть не так? Скрипт ведь работает. Я "в трёх соснах заблудился", блин...

лесник 27.03.2011 20:37:24

Ну, не знаю... Превратил пару городов в примере в ссылки. Вроде, при сортировке ничего не изменилось. Может, я неправильно понимаю проблему? "Сортировки по нескольким колонкам" как таковой ведь нет: просто следующая сортировка происходит на основе текущего (отсортированного) состояния таблицы (а не из исходного состояния).

oldFriend 26.03.2011 21:10:31

Недавно заметил, что не работает "Сортировка по нескольким колонкам" – начал читать статью – оказалось, что эта функция предусмотрена и в добавок работает в примере... Это наверное как-то связано с тем, что сортируется не текст, а ссылки?

лесник 08.03.2011 18:53:16

Посмотрел я наверх, и действительно: удивительно, удивительно... Думаю, причина в Опере (она всегда отличалась своей необычностью). В общем, чудо.

oldFriend 07.03.2011 06:25:38

Забыл, версия оперы – 11.01

лесник 02.03.2011 19:48:53

Александр, спасибо за отзыв!

Этому скрипту позволяет быть "чудесным" именно отсутствие кучи опций (запоминание состояния сортировки, настройка колонок, всякие "зебры" и подсказки...). Если добавить хотя бы одну из них, скрипт усложнится многократно. И такой скрипт есть: http://ir2.ru/static/BigTableSorter.zip

Он менее "чудесный" (код более корявый), но может сохранять состояние сортировки и работает...

Александр 28.02.2011 05:16:59

Спасибо за чудесный скрипт. А как сделать так, чтобы сортировать таблицу при загрузке по столбцу?

артём 22.02.2011 07:04:26

Извентиляюсь)По что то не подумал даже!Вопрос решен файл tabsort0.js сохр в UTF-8)))Запарился

артём 20.02.2011 05:50:16

Здраствуйте, установил данный элемент, но теперь у меня как и у http://front-mission.org/publ/front_mission_3/front_mission_3_navyki_po_alfavitu/2-1-0-38 при наведении на заголовок кракозябли. Как мне исправить? Спасибо за данный элемент, очень помог!

траст 21.12.2010 01:28:20

Проверка связи

oldFriend 07.03.2011 06:24:07

Здравствуйте. Поставил Simple Table Sorter и заметил у себя глюк с последней строкой в опере – после сортировки, последняя строка ВНЕШНЕ не изменяется, но при наведении на неё курсора всё становится нормально. Повторюсь только в опере. Не подскажите в чём причина?

Пример – http://free-iso.org/search/?q=neverhood&t=0