выделение строк таблицы после удаления строки таблицы

Я пытаюсь выделить все четные строки в таблице после удаления строки. tr удаляется, но повторное выделение не работает (я получаю две строки вместе, которые выделены). Вот мой код;

$( "#tr_id" ).remove();

// re-highlight table rows 
$("#table_id" ).removeClass("highlight");
$("#table_id tbody tr:even" ).addClass("highlight");

Однако, если я добавлю предупреждение или что-то еще, чтобы замедлить выполнение между удалением и выделением, это сработает.

$( "#tr_id" ).remove();

alert( 'slow execution' );

// re-highlight table rows 
$("#table_id" ).removeClass("highlight");
$("#table_id tbody tr:even" ).addClass("highlight");

Любые идеи?


person Jordan    schedule 20.01.2011    source источник
comment
Ваш код точно такой? Я думаю, что .remove() должен работать последовательно, поэтому обратный вызов не потребуется.   -  person atp    schedule 20.01.2011
comment
Спасибо, Джейси, ты прав. Извините, это я был глуп. Код работает так, как написано выше, но в моем реальном коде у меня была функция remove() в функции ajax.success и код повторной подсветки под ней. Я переместил свой код повторного выделения в функцию успеха, и, конечно же, это сработало.   -  person Jordan    schedule 21.01.2011


Ответы (2)


Я думаю, что использование функции JQuery delay идеально подходит для вашей ситуации.

person Alpesh    schedule 20.01.2011

Если вы не возражаете против поддержки IE ‹ 9 и опцией CSS3, вы можете использовать nth-child< /a> псевдокласс и вообще избежать проблемы:

#table_id tbody tr:nth-child(even) { background-color: yellow; }

Удаление trs не влияет на применение псевдокласса: http://jsfiddle.net/axWYj/

person Andrew Whitaker    schedule 21.01.2011