使用jquery删除tr标签后,将剩余的tr标签向上滑动

时间:2013-11-12 02:29:03

标签: jquery

我正在使用jquery ajax实现删除功能。我可以删除记录并删除代表该记录的tr。现在我想为我的代码添加一点风味,所以我试着让下面的tr向上滑动,用这样的jquery替换已删除的tr的位置:

 function () {
    tr.fadeOut('slow', function () {
        tr.remove();
    }).promise().done(function () {
        tr.nextAll("tr").slideUp();
 });

但是slideUp动画不起作用,删除后的所有tr都会消失,然后重新出现以替换已删除的动画的位置,请看看我告诉我的是什么我做错了。这是完整的jquery:

$(document).ready(function () {    
    $("body").on("click", ".waiting", function (event) {
        event.preventDefault();        
        var tr = $(this).closest("tr");
        $.ajax({
            type: "POST",
            beforSend: function () { $("#waiting").show(); },
            url: $(this).attr("href"),
            data: { "id": $(this).attr("id") },
            success: function () {
                        tr.fadeOut('slow', function () {
                            tr.remove();
                        }).promise().done(function () {
                            tr.nextAll("tr").slideUp();
                     });
            },
            complete: function () { $("#waiting").hide(); }
        });
    });
})

1 个答案:

答案 0 :(得分:1)

您要删除的元素会淡出然后消失会导致跳跃效果,您应该在删除的元素上使用slideUp。它会向上滑动,消失,并将所有内容带到它下面。

tr.slideUp('slow').remove();