0

背景色を更新する必要がある div (div.row) のリストがあります。現在、CSS を使用して背景色を div.row:nth-child(odd) および div.row:nth:child(even) で設定しています。

div.row はクリックで削除されています。その後、成功します。行全体を更新する必要があるため、1 秒ごとに背景が異なります。

どうやってやるの?

私のスクリプトは今です:

<script type="text/javascript">
$(document).ready( function() {
    $("a.delete").click(function(){
        $.ajax({
            type: "POST",
            url: "...",
            data: { this_page_id: $(this).prev().val() },
            success: function(){
                $(".success-delete").css("display","block");
            },
            async: false,
            dataType: "html"
        });
        $("#r" + $(this).prev().val()).slideUp();

        var i = 1
        $("div.row").each( function(index){
            if( i % 2 ){
                $(this).css('background-color','#ffffff');
            } else {
                $(this).css('background-color','#ececec');
            }

            i++;
        });
    });
});
</script>
4

4 に答える 4

3

jQuery はたくさんのセレクターを取ります:

$('div.row:even').css('background-color', 'white');
$('div.row:odd').css('background-color', '#ececec');

ここに膨大なリストがあります: http://api.jquery.com/category/selectors/

于 2011-03-16T21:40:15.360 に答える
0

ここに解決策があります..ついに発見されました:-)

他の人に役立つことを願って投稿しています-ご協力いただきありがとうございます!

$(document).ready( function() {
    $("a.delete").click(function(){
        var id = $(this).prev().val();
        $.ajax({
            type: "POST",
            url: "/nsautolak.dk/admix/pages/delete/",
            data: { this_page_id: $(this).prev().val() },
            success: function(){
                $(".success-delete").css("display","block");
                $("#r" + id).removeClass("block").slideUp();

                $("div.block:odd").css('background-color','#ececec');
                $("div.block:even").css('background-color','#ffffff');
            },
            async: false,
            dataType: "html"
        });
    });
});
于 2011-03-16T22:11:50.677 に答える
0

これはうまくいきませんか?

$(document).ready( function() {
    $("a.delete").click(function(){
        $.ajax({
            type: "POST",
            url: "...",
            data: { this_page_id: $(this).prev().val() },
            success: function(){
                $(".success-delete").css("display","block");
                doRows();
            },
            dataType: "html"
        });
        $("#r" + $(this).prev().val()).slideUp();

        function doRows() {
            $("div.row").each( function(index){
                if( index % 2 ){
                    $(this).css('background-color','#ffffff');
                } else {
                    $(this).css('background-color','#ececec');
                };
            });
        };

        doRows();
    });
});
于 2011-03-16T21:39:22.327 に答える
0

私が正しく理解していれば、行の 1 つを中央から削除すると、ループを再実行して行の BG カラーをリセットする必要がある場合があります。削除する行が一番下にある場合は、何もする必要はありません。

この行 BG のリセットは、行の削除を処理するクリック イベント ハンドラーで行われます。

また、直接スタイルの代わりに css クラスを使用することをお勧めします。.removeClass()、.addClass() を使用できます

お役に立てれば。

于 2011-03-16T21:44:16.970 に答える