我正在尝试淡出一行并将fadeIn作为表格中的最后一行,但我无法让fadeIn工作。
目前我有这个:
function Test(control) {
var row = $(control).parents('tr');
row.find("td").fadeOut('slow', function () {
var lastRow = $("#table1 tr:last");
lastRow.after(row).fadeIn('slow');
});
}
即使我放弃fadeIn lastRow.after(row)似乎也没有工作。
答案 0 :(得分:1)
.after()
会返回lastRow
,而不是您想要的后面的行,因此请使用.insertAfter()
,如下所示:
function Test(control) {
var row = $(control).closest('tr');
row.fadeOut('slow', function () {
row.insertAfter("#table1 tr:last").fadeIn('slow');
});
}
另请注意,我们正在淡化<tr>
我们正在逐渐淡入,而不是单个<td>
元素(如果孩子被隐藏,则让父母退去并没有帮助)。另请查看.closest()
而不是.parents()
...它更便宜/更精确。
以上内容旨在显示更正后的版本,您还可以将其缩小为:
function Test(control) {
$(control).closest('tr').fadeOut('slow', function () {
$(this).insertAfter("#table1 tr:last").fadeIn('slow');
});
}
答案 1 :(得分:0)
答案 2 :(得分:0)
您也可以使用
$(this).fadeIn('slow').insertAfter("#table1 tr:last")