2010-12-06 5 views
0

私は行をフェードアウトしようとしていて、テーブルの最後の行としてフェードインしようとしていますが、フェードインを動作させることができません。fadeOutの行と最後の行としてのフェードイン

現在、私はこれを持っている:私はフェードインlastRow.after(行)をオフのままに

​​

場合であっても動作していないようです。

+0

テーブルのすべての行をフェードアウトしてから、**最後の**テーブル行をフェードアウトして表示しますか? –

答えて

2

.after()戻りlastRow、ないあなたが望むようにあなたがそれの後に挿入された行なので、このよう.insertAfter()を使用します。

function Test(control) { 
    var row = $(control).closest('tr'); 
    row.fadeOut('slow', function() { 
    row.insertAfter("#table1 tr:last").fadeIn('slow'); 
    }); 
} 

はまた、我々は、我々は戻って、個々のない、フェードインしている<tr>フェージングしている注意してください<td>要素(子供が隠れている場合は、元の親を元に戻すと助けになりません)。また.parents()の代わりに.closest()を見てください...それはずっと安く/より正確です。

function Test(control) { 
    $(control).closest('tr').fadeOut('slow', function() { 
    $(this).insertAfter("#table1 tr:last").fadeIn('slow'); 
    }); 
} 
+0

クイック返信ありがとう!なぜIE8がフェードインまたはフェードアウトなしで挿入するのか知っていますか?それは他のブラウザでも完璧に機能します。 –

+0

@zLan - ''は実際には表示されていない要素なので、フェーディングテーブルの要素はIEでは難しいですが、少なくとも遅れていなければなりません。 –

+0

ええ、それは退色する必要があるように遅延があります。このための簡単な修正はありませんか? –

0

これはどう:

$('tr').fadeOut(500, function(){ 
     $(this).appendTo('table').fadeIn(500); 
    }); 

Try it

0

することができます


上記は、修正されたバージョンを表示することを意図した、あなたはそれがダウンにスリムにもできました同じく使用する

$(this).fadeIn('slow').insertAfter("#table1 tr:last") 
関連する問題