Сортировка таблицы jQuery

Сортировка таблицы jQuery

Недавно встала перед мной задача, сделать сортировку у таблицы, подсвечивать наведенную строчку и если есть картинка у строки, то выводить её превью. Так, так как по умолчанию к движку подключалась библиотек jQuery 1.4.2, то необходимо было найти плагин работающий именно под jQuery. После недолгих поисков, был найден плагин ui.tablesorter.js. В базовые возможности которого входила сортировка всех полей, чередование цветов строчек и возможность отключать сортировку у полей. Плагин полностью удовлетворяет требованиям к сортировке, поэтому я принял решение немного модифицировать его.

Для того, чтобы он подсвечивал строку на которую была наведена мышка, напишем небольшой обработчик, который будет выполнять следующее:

1. При наведении мышки на строку с классом even или odd в строку добавляется класс hover, в котором прописан стиль для строки.

.hover {
background-color: #cccccc !important;
}

2. Когда убираем мышку со строки, то класс удаляется, возвращая цвет в исходное состояние.

Далее надо написать обработчик открытия превью. Наиболее рациональным способом для меня стало добавление скрытого блока с картинкой в ячейку, а после наведения на строку мышки, осуществляется поиск блока и если он найден, то меняем ему css свойство на видимость.

$(".even").hover(function(){

$(".even").hover(function(){

$(this).addClass('hover');

$(this).find("td").addClass('hover');

}, function(){

$(this).removeClass('hover');

$(this).find("td").removeClass('hover');

$(this).find("div").css('display','none');

});

$(".odd").hover(function(){

$(this).addClass('hover');

$(this).find("td").addClass('hover');

$(this).find("div").css('display','block');

}, function(){

$(this).removeClass('hover');

$(this).find("td").removeClass('hover');

$(this).find("div").css('display','none');

});

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

Вот мы и модифицировали  плагин. Единственное что хочу добавить, если цифры в ячейке записаны не в едином формате, то сортировка будет производится не корректно. Поэтому, все числа необходимо писать в едином формате. Можно было подумать, что это баг и его надо поправить, но мне показалось, что единый формат для всех чисел более правильное решение.

Скачать исходники

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *