使用.show显示新添加的表行("慢")

Sam*_*ill 5 jquery

我正在克隆一个隐藏的表行然后填充它并在验证后我想使用jquery效果显示该行...说.show("slow")

var baseRow = $("#tasks tr#baseTaskLine");
var newRow = baseRow.clone();
var lastRow = $("#tasks tr[id^='TaskLine_']" + dayClass + ":last");

var newRowId;
if (lastRow.length == 0) {
   newRowId = "TaskLine_new0";
}
else {
   newRowId = "TaskLine_new" + lastRow[0].rowIndex;
}

newRow.attr("id", newRowId);

:
[populate new row]
:

if (lastRow.length == 0) {
   baseRow.after(newRow);
}
else {
   lastRow.after(newRow);
}
newRow.hide();
:

:
[validate via webservice call]
:
newRow.show("slow");
Run Code Online (Sandbox Code Playgroud)

这确实显示了行但它立即出现.我试图隐藏行的所有<td>元素,然后显示那些,这似乎工作,但一些奇怪的样式被添加到每个<td>干扰格式,即style="display: block;"

Tam*_*ege 8

这不会这样.表行和单元格不应显示为块,因此show/fade效果不会直接对表行起作用.

但是,您可以在每个单元格中放置一个<div>,如下所示:

<table>
<tr id="row1"><td><div>Cell1:1</div></td><td><div>Cell2:1</div></td></tr>
<tr id="row2"><td><div>Cell1:2</div></td><td><div>Cell2:2</div></td></tr>
</table>
Run Code Online (Sandbox Code Playgroud)

然后是以下内容:

$('#row2 td div').show('slow');
Run Code Online (Sandbox Code Playgroud)

这将产生预期的行为.