.after()
возвращает lastRow
, а не строку, вставленную после нее, как вы хотите, поэтому используйте .insertAfter()
как это:
function Test(control) {
var row = $(control).closest('tr');
row.fadeOut('slow', function () {
row.insertAfter("#table1 tr:last").fadeIn('slow');
});
}
Также обратите внимание, что мы постепенно исчезаем <tr>
, в который мы возвращаемся, а не отдельные элементы <td>
(возвращение родительского элемента не помогает, если дочерние элементы скрыты).Также посмотрите на .closest()
вместо .parents()
... это намного дешевле / точнее.
Выше было предназначено показать исправленныеверсия, вы также можете уменьшить его до:
function Test(control) {
$(control).closest('tr').fadeOut('slow', function () {
$(this).insertAfter("#table1 tr:last").fadeIn('slow');
});
}