1

テーブルから行を削除するときに「slideUp」アニメーションを使用するjQueryコードをいくつか作成しました。アニメーションをスムーズに表示するために、行内の各TDの内容をDIVタグでラップし、DIVでslideUp関数を呼び出して、アニメーションの完了時に実際のTDを削除しました。そのためのコードは次のとおりです。

$("tr[id$=" + rowID + "]").children("td").each(function() {
    $(this).children("div").slideUp(function() {
        $(this).parent().remove();
    });        
});

ここまでは順調ですね。ただし、このコードでは実際のTRは削除されず、その内容のみが削除されることに気付いたため、次の行を追加してTRを削除しました。

$("tr[id$=" + rowID + "]").remove();

問題は、上記の行を追加した後、アニメーションが機能しなくなることです。言い換えれば、行は、すてきなスライド効果なしで単に消えます。なぜこれがそうなのか、そしてそれを回避する方法を誰かが知っていますか?

4

2 に答える 2

1

trすべてのアニメーション要素を含むを削除しているためです。これ以上の要素、これ以上のアニメーションはありません。すべてのsに同じ時間がかかるはずなので、finishコールバックをからにslideUp変更することでおそらく逃げることができます。$(this).parent().remove()$(this).closest('tr').remove()

于 2009-08-20T00:32:28.937 に答える
1

これを可能にするjQueryプラグインを作成しました。行を追加および削除でき、データを div などでラップする必要はありません。http://www.fletchzone.com/post/jQuery-Unobtrusive-Animated-Add-and-Remove-Table-Rows.aspxで確認してください。

一番、

フレッチ

于 2010-06-09T04:23:33.743 に答える