1

ここに私のフィドルがあります:http://jsfiddle.net/SBAE8/

これが私の問題です。一連の 3 つの項目があります。一番上の項目の前に、スクリプトによって表示が切り替えられた見出しがあります。ユーザーがアイテム 1 を削除するとアイテム 2 の見出しが表示され、アイテム 2 を削除するとアイテム 3 の見出しが表示されます。問題は、アイテム 2 を最初に削除すると、アイテム 3 の見出しが表示され、いつでも各セットに 1 つの見出しだけが必要であり、どのアイテムが一番上にあるかに関係なく、常に最初のアイテムの見出しである必要があることです。削除されたアイテムに上位の兄弟があるかどうかを確認する方法をいくつか試しましたが、これを理解できないようです。

jQuery (上記リンクのフィドルも参照):

    $(".doDelete").click(function () {
        var $el = $(this).closest("div.payload-container");
        var id = $(this).attr("id");
        // Alert callback (removed from this example)
            // Success
                $el.next("div.payload-container").find(".headline").toggleClass("hide");
                $el.slideUp(200, function () {
                    $el.remove();
                });
    });

どんな助けでも大歓迎です。ありがとう!

4

1 に答える 1

1

最初に他の見出しが表示されている (または表示される予定) かどうかを確認しません。

コールバックをチェックインします。

if (!$(".headline:visible").length) {
    $el.next("div.payload-container").find(".headline").toggleClass("hide");
}
$el.remove();

これは、が完了するまでの見出しを表示しません。slideUpそれがダメなら、見える$el.headlineは かどうかを確認する必要があります。

http://jsfiddle.net/SBAE8/1/

更新:最終作業バージョンhttp://jsfiddle.net/uE5Ap/2/

于 2013-01-29T04:42:53.000 に答える