jQuery不断向我的表行添加display:block

时间:2011-12-25 06:33:08

标签: javascript jquery

var str = '<tr class="task_row"><td>data.name</td><td>data.description</td></tr>';
$(str)
    .hide()
    .insertAfter($(clicked_item)
                     .parent()
                     .parent()
                     .parent()
                     .next()
                     .find('.header_row')
                 )
    .fadeIn("slow");

出于某种原因,当jQuery显示新行时,它会为<tr>提供display: block样式,这样整行只占用一个单元格。有没有办法阻止它以这种方式行事?

2 个答案:

答案 0 :(得分:3)

我明白了。

如果我添加:

$('.task_row').css('display', 'table-row');

在动画线之后,它会正确显示。

答案 1 :(得分:0)

.fadeIn() jQuery后自动将display: block添加到元素中(我认为是CSS优先级)。您可以在.fadeIn()完成工作后将其删除。 Example

var str = '<tr class="task_row"><td>data.name</td><td>data.description</td></tr>';
$(str)
    .hide()
    .insertAfter($(clicked_item)
                     .parent()
                     .parent()
                     .parent()
                     .next()
                     .find('.header_row')
                 )
    .fadeIn("slow", function() { $(this).removeAttr('style'); });