2016-07-11 3 views
0

Вот что я использую this, чтобы развернуть строку в таблице. Я также создал codepen.tablesorter после удаления строки, сортировка оставила пробел

$(".tablesorter").tablesorter(); 

$('.remove').on('click', function(){ 
    $(this).closest('tr').children('td').animate({ padding: 0 }).wrapInner('<div/>').children().slideUp(function() { 
    $(this).closest('tr').remove(); 
    }); 
    $(".tablesorter").trigger('update'); 
}); 

Цель:

  • Slide до строки при нажатии Удалить
  • Сортировать должным образом без пробелов

Теперь слайд-наладочных работ. Но после разворота сортировка оставляет промежуток между рядами - удаленный ряд появляется как промежуток (не очень очевидно в кодефене). Итак, как полностью удалить строку? или почему он появился снова после сортировки?

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

+1

Вы не должны быть запуска обновления после удалить, не после клика? Попробуйте поместить триггер («обновление») в обратный вызов slideUp после удаления. – BenM

ответ

2

Поскольку метод .animate() является асинхронным, выполнение продолжается сразу после вызова .animate() и вы фактически вызываете обновление на tablesorter до того, как фактическая строка будет удалена из таблицы.

Используйте функцию обратного вызова для метода анимации и обновите там табличный блок.

Пример:

$('.remove').on('click', function(){ 
    $(this).closest('tr').children('td').animate({ padding: 0 }).wrapInner('<div />').children().slideUp(function() { 
     $(this).closest('tr').remove(); 
     $(".tablesorter").trigger('update'); 
    }); 
}); 
Смежные вопросы