重新排序替代颜色

时间:2011-10-07 01:13:51

标签: jquery

我有一张包含备用颜色行的表。

$("#contTbl tr:even").addClass("altBgr"); 

我有一个执行某些事务的函数,在AJAX发布后删除了该行。

$(".clickMe").click(function() {
        var trID = $(this).closest("tr").attr("id");
        $.ajax({
            url: "ajax.php",
            type: "POST",
            data: { 
                contID: trID
            },
            success: function(data){
                $("#"+trID).remove();
            }
        });
    });

我遇到的问题是当我删除一行时,其他行的颜色变得乱序...有没有办法在删除时以某种方式刷新它?

3 个答案:

答案 0 :(得分:2)

如何删除点击上的class并将其添加回成功检索?

$(".clickMe").click(function() {
    var trID = $(this).closest("tr").attr("id");
    $.ajax({
        url: "ajax.php",
        type: "POST",
        data: { 
            contID: trID
        },
        success: function(data){
            $("#"+trID).remove();
            $("#contTbl tr:even").removeClass("altBgr");  
            $("#contTbl tr:even").addClass("altBgr");
        }
    });
});

已编辑:根据我自己的评论

  

您可以尝试将removeClass()和addClass()放入   成功:看看是否能消除闪烁

答案 1 :(得分:1)

您可以将它放在一个函数中并再次调用它(在再次添加它们之前不要忘记删除它们。)

或者使用CSS通过:nth-child ...

进行着色
tr:nth-child(even) td { 
    background: #f03;
}

...请记住< IE 9不会很好玩。

答案 2 :(得分:0)

您可以创建如下函数:

function set_odd_even(){
    alert($("table tr"));
    $.each($("table tr"), function(index, value){
        alert(value);
        $(value).removeClass('even');
        if(index % 2){
            $(value).addClass('even');
        }
    });
}

然后在成功事件中调用它:

success: function(data){
    $("#"+trID).remove();
    set_odd_even();
}