1

我有一张桌子,当我删除一行时,它会使用 slideUp 进行动画处理。

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

我用这个技巧在一行上使用 slideUp:animating-table-rows-with-jquery

显示所有列时没有问题,但是当我有隐藏列时,它只是删除没有动画的行。我想这是 slideUp 的正常行为,但是有没有技巧让它与动画一起工作?我正在考虑测试 td 是否隐藏,什么都不做,否则 slideUp,但我认为这不会成功。

4

1 回答 1

0

这样做的原因是,给定的回调slideUp不是在所有动画完成后调用,而是在每个动画完成后调用。由于div隐藏列中的 s 不可见,所以上滑动画不需要发生,即立即完成,因此立即调用回调。

但是,回调会删除整行

有几种方法可以解决这个问题。您拥有自己的想法(不处理div无论如何都不可见的 s )是一种可行的方法。

另一种方法是设置一个超时来删除该行,而不是在回调中进行。

第三种方法是检查回调是否还有divs,如果没有,则仅删除该行,即类似

$(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
});
于 2010-06-23T16:02:42.557 回答