Javascript 向下滑动力显示:块

Javascript 向下滑动力显示:块,javascript,jquery,css,Javascript,Jquery,Css,我使用以下代码向下滑动一行,但是jQuery在该行上强制执行显示:block,而该行应该是表行,从而破坏了样式 小提琴: 完成后,我手动将其设置为表行,但这太可怕了。我怎样才能解决这个问题 <style> table { margin: 25px; } tr { background-color: #c00; color: #fff; border: 1px solid #000; padding: 10px; } </style>

我使用以下代码向下滑动一行,但是jQuery在该行上强制执行
显示:block
,而该行应该是
表行
,从而破坏了样式

小提琴:

完成后,我手动将其设置为
表行
,但这太可怕了。我怎样才能解决这个问题

<style>
table {
    margin: 25px;
}
tr {
    background-color: #c00;
    color: #fff;
    border: 1px solid #000;
    padding: 10px;
}
</style>
<table>
    <tr>
        <td>a</td>
        <td>b</td>
        <td>c</td>
        <td>d</td>
        <td style="display:none;">1</td>
    </tr>
</table>

桌子{
利润率:25px;
}
tr{
背景色:#c00;
颜色:#fff;
边框:1px实心#000;
填充:10px;
}
A.
B
C
D
1.
jQ:

$(“tr”)。单击(函数(){
var行=$(此);
var visibleLength=row.find(“td:visible”).length;
var hiddenLength=row.find(“td:not(:visible)”).length;
var drillRow=$(“”)。addClass(“drillDownRow”);
var drillColumn=$(“”).attr(“colspan”,visibleLength);
var drillHidden=$(“”).attr(“colspan”,hiddenLength).css({display:“none”});
html(“测试2…正常”);
drillRow.hide().append(drillColumn).append(drillHidden).insertAfter(row);
slideDown(“slow”,function(){$(this).css({display:“table row”})});
});

尝试使用
动画
方法,而不是
向下滑动
。您需要对想要的效果进行更多的手动定义,但它不会引入给您带来麻烦的
display:block

引自:

注意:与.slideDown()和.slideDown()等速记动画方法不同 .fadeIn(),则.animate()方法不会使隐藏元素可见 作为效果的一部分。例如,给定 $('someElement').hide().animate({height:'20px'},500),动画 将运行,但元素将保持隐藏状态


有什么方法不能使用表来执行此操作吗?可能重复:@Rory:不幸的是,没有,这是一个
dataTable
我必须在单击行时向行添加额外的内容。我讨厌
表格
s:(
$("tr").click(function(){
    var row = $(this);
    var visibleLength = row.find("td:visible").length;
    var hiddenLength = row.find("td:not(:visible)").length;
    var drillRow = $("<tr/>").addClass("drillDownRow");
    var drillColumn = $("<td/>").attr("colspan", visibleLength);
    var drillHidden = $("<td/>").attr("colspan", hiddenLength).css({display: "none"});

    drillColumn.html("test <b>2</b>... ok");

    drillRow.hide().append(drillColumn).append(drillHidden).insertAfter(row);
    drillRow.slideDown("slow",function() {$(this).css({display: "table-row"})});
});
 $el.slideDown(function() {$(this).css('display', '');});