1

テーブルがあり、行を削除すると、slideUp でアニメーション化されます。

$(id).find("td div").slideUp

このトリックを使用して、行でslideUpを使用しました:animation -table-rows-with-jquery

すべての列が表示されている場合は問題ありませんが、列を非表示にすると、アニメーションなしで行が削除されるだけです。スライドアップからしたら正常な動作だと思いますが、animateで動作させるコツはありますか?td が隠されているかどうかをテストすることを考えていましたが、何もしないでください。

4

1 に答える 1

0

これは、すべてのアニメーションが完了した後ではなく、アニメーションが完了した後にコールバックslideUpが呼び出されるためです。非表示の列の は表示されないため、上にスライドするアニメーションを実行する必要はありません。つまり、すぐに完了するため、コールバックがすぐに呼び出されます。div

ただし、コールバックは行全体を削除します。

これに対処するにはいくつかの方法があります。あなたが自分自身を持っていたという考え (とにかく目に見えない s を扱わdivない) は、うまくいくはずの 1 つの方法です。

もう 1 つの方法は、コールバックで行を削除する代わりに、タイムアウトを設定して行を削除することです。

3 番目の方法は、 が残っているかどうかをコールバックでチェックインし、div残っていない場合にのみ行を削除することです。つまり、次のようなものです。

$(id).find("td div").slideUp(function() {
    $(this).remove();                     // remove the div itself
    if ($(id).find("td div").length == 0) // if none are left
        $(id).remove();                   // then remove the row
});
于 2010-06-23T16:02:42.557 に答える