1

我编写了一些 jQuery 代码,以便在从表中删除行时使用“slideUp”动画。为了让动画看起来流畅,我用 DIV 标记将行中每个 TD 的内容包裹起来,并在 DIV 上调用 slideUp 函数,在动画完成后删除实际的 TD。代码如下:

$("tr[id$=" + rowID + "]").children("td").each(function() {
    $(this).children("div").slideUp(function() {
        $(this).parent().remove();
    });        
});

到现在为止还挺好。但是,我注意到这段代码并没有删除实际的 TR,只删除了它的内容,所以我添加了以下行来删除 TR:

$("tr[id$=" + rowID + "]").remove();

问题是,在我添加上面的行之后,动画停止工作。换句话说,行只是消失了,没有很好的滑动效果。有谁知道为什么会这样以及如何解决它?

4

2 回答 2

1

因为您要删除tr包含所有动画元素的 。没有更多的元素,没有更多的动画。鉴于所有slideUps 应该花费相同的时间,您可能可以将完成回调从 更改$(this).parent().remove()$(this).closest('tr').remove()

于 2009-08-20T00:32:28.937 回答
1

我写了一个 jQuery 插件,可以让你做到这一点。您可以添加和删除行,并且不需要用 div 或类似的东西包装您的数据。在http://www.fletchzone.com/post/jQuery-Unobtrusively-Animated-Add-and-Remove-Table-Rows.aspx查看它

最好的,

弗莱奇

于 2010-06-09T04:23:33.743 回答