2011-06-21 21 views
2

私は最初の行を削除してテーブルの新しい項目に追加する素晴らしい移行が必要です。jqueryテーブルの最初の行を削除します

$.getJSON('/Home/GetRecentPosts/', { count:1 }, function(data) { 
     $('#recentPosts tr:first').fadeOut(2000); 
     $('#recentPosts').append($('<tr><td>'+data[0].SchoolName+'</td></tr>').hide().fadeIn(2000)); 
    }); 

これは初めてgetJsonを実行するときに機能します。助けてください。 ありがとう

+0

どのように/どこでこのメソッドを呼び出していますか?サーバから返された 'data'のテストは行わず、' data [0] 'に直接アクセスしています。サーバーが少なくとも1つの要素を含むJSONコレクションを送信するたびに保証されますか? –

答えて

5

を試し、DOMから要素を削除したい場合

はまた、私は別のラインにしたい機能の各項目を分離しようとしました。これがあなたの後ろでない場合は、うまくいけば、あなたのニーズに合わせて以下のコードを調整するのは難しいことではありません。

$.getJSON(
    '/Home/GetRecentPosts/', 
    { count:1 }, 
     removeFirstRowAndAppendNewItem(data) 
    ); 

function removeFirstRowAndAppendNewItem(data) 
{ 
    console.log("in callback"); // to confirm we have reached here 
    $('#recentPosts tr:first').fadeOut(2000, function() { 
     $('#recentPosts tr:first').remove(); 
     newRow = $('<tr><td>'+data[0].SchoolName+'</td></tr>').hide(); 
     $('#recentPosts').append(newRow) 
     newRow.fadeIn(2000)); 
    }); 
} 

基本的には:最初の行のうち

  • フェード
  • DOM
  • から最初の行を削除すること
  • は、新しい要素を追加隠しスタイリングを持つ新しい要素を作成しますテーブルへ
  • 新しい要素でフェードイン

(注:それは一緒にこれらのステップを組み合わせることが可能です)

+0

australis:より良い効果を追加するために最初のものが削除された後、残りの行にslideUpトランジションを追加する方法はありますか?ありがとう – ShaneKm

+0

シェーン:私は誤解される可能性がありますが、私は行をスライドさせる唯一の方法は、行にdivを埋め込み、それをスライドすることだと思います。これで運がありましたか?そうでなければ、私は一例を掘り下げて掘り下げます。 – australis

1

これを試してください。

$('#recentPosts tr:visible:first').fadeOut(2000); 

$('#recentPosts tr:first').fadeOut(2000); 

は、最初のJSON呼び出しの最初の要素を非表示になっていたので。今、目に見えない最初の要素をフェードアウトさせようとしています。したがって、:visibleフィルタを使用して、期待される結果を得ることができます。あなたはこの

$('#recentPosts tr:first').fadeOut(2000, function(){ 
    $(this).remove(); 
}); 
0

これを試してみてください:

$.ajax({ 
beforeSend: function(){ 
// Handle the beforeSend event 
}, 
complete: function(){ 
// Handle the complete event 
} 
// ...... 
}); 
関連する問題