jQuery SlideUp на строку со скрытыми столбцами - PullRequest
1 голос
/ 23 июня 2010

У меня есть таблица, и когда я удаляю строку, она анимируется с помощью slideUp.

$(id).find("td div").slideUp

Я использовал этот трюк для использования slideUp в строке: animating-table-row-with-jquery

Нет проблем, когда отображаются все столбцы, но когда у меня есть скрытые столбцы, он просто удаляет строку без анимации. Я предполагаю, что это нормальное поведение от slideUp, но есть ли хитрость, чтобы заставить его работать с animate? Я думал о том, чтобы проверить, скрыт ли тд, ничего не делать, еще слайд, но я не думаю, что это поможет.

1 Ответ

0 голосов
/ 23 июня 2010

Причина этого заключается в том, что обратный вызов, данный slideUp, не вызывается после того, как все анимации завершены, но после каждая анимация завершена. Поскольку div s в скрытом столбце не видны, анимация скольжения не требуется, то есть выполняется немедленно, и, таким образом, обратный вызов вызывается немедленно.

Однако обратный вызов удаляет всю строку .

Есть несколько способов справиться с этим. Идея о том, что вы сами (не имеете дело с div s, которые в любом случае не видны) - это один из способов, который должен работать.

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

Третий способ - проверить обратный вызов, если остались какие-либо div, и удалить только строку, если ее нет, т.е. что-то вроде

.
$(id).find("td div").slideUp(function() {
    $(this).remove();                     // remove the div itself
    if ($(id).find("td div").length == 0) // if none are left
        $(id).remove();                   // then remove the row
});
...