如何将jQuery hide()和fadeIn()压缩为单行?

时间:2013-04-02 19:12:30

标签: jquery

我正在使用jQuery向表中添加新行,并按照我的意愿淡化行,但只有两次调用,第一次使用after在表的末尾添加新行,然后我使用hide后跟fadeIn来获得效果。我想压缩这个

$(document).ready(function ($) {
    $("button").click(function () {
        $.get('@Url.Action("AddCalculatorRow", "Workshop", 
                           new { id = Model.Id } )', function (data) {
            $('.calculator').find("tbody tr:last").after(data);
            $('.calculator').find("tbody tr:last").hide().fadeIn(2000);
        });
    });
});
重复告诉我必须有一种更优雅的方式来实现外观。但是,如果我这样做

$('.calculator').find("tbody tr:last").after(data).hide().fadeIn(2000); 

然后立即显示添加的行,最后一行是隐藏和淡入的......这看起来很糟糕。

1 个答案:

答案 0 :(得分:3)

添加新内容后,只需定位下一个元素。

$('.calculator').find("tbody tr:last").after(data).next().hide().fadeIn(2000);

或交换它:

$(data).hide().appendTo('.calculator tbody').fadeIn(2000);

在使用之前继续解析数据也是明智之举,但这完全是可选的:

$($.parseHTML(data)).hide().appendTo('.calculator tbody').fadeIn(2000);