2011-12-25 33 views
2
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这使得整个行只占用一个单元格。有没有办法阻止它这样做?jQuery的不断增加显示:块到我的表行

+1

什么版本的jQuery? – 2011-12-25 06:33:59

+0

我正在使用版本1.6.2 – ThinkingInBits 2011-12-25 06:36:03

+0

你可以给我们一个html输出的例子:'$(clicked_item).parent()。parent()。parent()。next()。find('。header_row') ' – noob 2011-12-25 06:55:10

回答

3

我想通了。

如果我添加:

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

动画行后,它会显示正常。

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'); });