Альтернативная раскраска строк в jquery - PullRequest
6 голосов
/ 11 июня 2009

У меня есть таблица с развернутыми и свернутыми строками, с возможностью сортировки по столбцам. Ниже приведен мой код, есть ли способы улучшить его производительность. И чтение добавление полной группы строк в DOM улучшает производительность, но если я делаю из цикла $ .each (), это выдает ошибку. демо-версия

var alt = true;
var altSub = true;

$.each(myData, function(index, row) {

    var noRow = $(row).length;
    var firstRow = $(row[0]);

    for (var i=0; i < noRow; i++) {
        if(firstRow.attr('id') == $(row[i]).attr('id')) {
            if(alt == true) {
                firstRow.removeClass("odd").addClass("even");
                alt = !alt;
                altSub = true;
            } else if( alt == false) {
                firstRow.removeClass("even").addClass("odd");
                alt = !alt;
                altSub = true;
            }
        } else {
            if(altSub == true) {
                $(row[i]).removeClass("alt_row_sub").addClass("alt_row_sub2");
                altSub = !altSub;
            } else if( altSub == false) {
                $(row[i]).removeClass("alt_row_sub2").addClass("alt_row_sub");
                altSub = !altSub;
            }
        }
    }
    $table.children('tbody').append(row);
});

текст ссылки

Ответы [ 3 ]

15 голосов
/ 11 июня 2009

Вы можете найти полезными селекторы :even и :odd.

Вы можете использовать их так:

$('.stripyTable tr:even').addClass('even');
$('.stripyTable tr:odd').addClass('odd');
$('.stripyTable .submenu tr:even').addClass('alt_row_sub');
$('.stripyTable .submenu tr:odd').addClass('alt_row_sub2');

Еще одна вещь, которую стоит рассмотреть, заключается в том, можете ли вы использовать различные стили подразделов только с помощью CSS, тогда в вашем JS вам нужно только беспокоиться о применении нечетных / четных классов. CSS может выглядеть примерно так:

.odd { background-color: blue; }
.even { background-color: white; }
.sub .odd { background-color: green; }
.sub .even { background-color: yellow; }
2 голосов
/ 11 июня 2009

Обучающие программы: Легкое чередование зебр от jQuery - отличное руководство по чередованию зебр.

0 голосов
/ 13 июля 2012

вы внутри каждого цикла, сделайте это:

$.each(myData, function(index, row) {

       if(index % 2 == 0)
       {
            row.addClass("AltRow");
       }
)};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...