删除时,更改每个div上的背景颜色

时间:2011-03-16 21:35:52

标签: jquery css jquery-post

我有一个div(div.row)列表,我需要更新背景颜色。目前我通过CSS设置背景颜色与div.row:nth-​​child(单数)和div.row:nth:child(偶数)..

div.row是通过点击删除 - 然后它成功,我需要它来更新整行,所以它仍然每秒都有不同的背景..

我该怎么做?

我的剧本现在是:

<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 个答案:

答案 0 :(得分:3)

jQuery需要大量的选择器:

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

这是一个巨大的列表:http://api.jquery.com/category/selectors/

答案 1 :(得分: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();
    });
});

答案 2 :(得分:0)

如果我理解正确的话: 如果从中间删除其中一行,则可能必须重新运行循环以重置行的BG颜色。如果要删除的行位于底部,则无需执行任何操作。

重置行BG将在处理行删除的点击事件处理程序中完成。

我还建议使用css类而不是直接样式。 您可以使用.removeClass(),. addClass()

希望这会有所帮助。

答案 3 :(得分: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"
        });
    });
});