jQuery SlideUp在隐藏列的行上

时间:2010-06-23 15:40:28

标签: jquery html-table hidden slideup

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

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

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

显示所有列时没有问题,但是当我有隐藏列时,它只删除没有动画的行。我想这是来自slideUp的正常行为,但有一个技巧可以使它与动画一起使用吗?我正在考虑测试td是否被隐藏,什么也不做,否则会滑动,但我不认为这会有所作为。

1 个答案:

答案 0 :(得分:0)

原因是在所有动画完成后,但每个动画完成后,才会调用slideUp的回调。由于隐藏列中的div不可见,因此不需要进行上滑动画,即立即完成,因此立即调用回调。

然而,回调会删除整行

有几种方法可以解决这个问题。你自己的想法(不处理那些不可见的div)是应该工作的一种方式。

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

第三种方法是检查回调是否剩下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
});