我有一张桌子,当我删除一行时,它会使用 slideUp 进行动画处理。
$(id).find("td div").slideUp
我用这个技巧在一行上使用 slideUp:animating-table-rows-with-jquery
显示所有列时没有问题,但是当我有隐藏列时,它只是删除没有动画的行。我想这是 slideUp 的正常行为,但是有没有技巧让它与动画一起工作?我正在考虑测试 td 是否隐藏,什么都不做,否则 slideUp,但我认为这不会成功。
我有一张桌子,当我删除一行时,它会使用 slideUp 进行动画处理。
$(id).find("td div").slideUp
我用这个技巧在一行上使用 slideUp:animating-table-rows-with-jquery
显示所有列时没有问题,但是当我有隐藏列时,它只是删除没有动画的行。我想这是 slideUp 的正常行为,但是有没有技巧让它与动画一起工作?我正在考虑测试 td 是否隐藏,什么都不做,否则 slideUp,但我认为这不会成功。
这样做的原因是,给定的回调slideUp
不是在所有动画完成后调用,而是在每个动画完成后调用。由于div
隐藏列中的 s 不可见,所以上滑动画不需要发生,即立即完成,因此立即调用回调。
但是,回调会删除整行。
有几种方法可以解决这个问题。您拥有自己的想法(不处理div
无论如何都不可见的 s )是一种可行的方法。
另一种方法是设置一个超时来删除该行,而不是在回调中进行。
第三种方法是检查回调是否还有div
s,如果没有,则仅删除该行,即类似
$(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
});