1

jQuery を使用して背景色を交互に変更し、次のように順序付けされていないリスト項目に半径を追加しています。

// Alternate row colors for group listing and add top/bottom radii
$('li.groupList:even').css({backgroundColor: '#e4e4e4'});
$('li.groupList:odd').css({backgroundColor: '#ededed'});
$('li.groupList:first').addClass('rtm');
$('li.groupList:last').addClass('rbm');

ただし、実際のremove()方法を使用してリスト項目の 1 つを削除すると、色と半径が更新されません。

// Remove group members
$("[id^='removeGroupMember_']").click(function () {
    $(this).parent().slideUp("fast", function () {
        $(this).remove();
    });
});

これは、リスト配列の変更がブラウザに通知されないためですか、それとも CSS のみを使用して (つまり、li.groupList:nth-child(even)などを使用して) 行う必要があるのでしょうか?

そもそも jQuery を使用していた理由は、それが CSS3 セレクターよりもクロスブラウザー対応であると想定したためです (ただし、そうでない場合は教えてください!)。

4

1 に答える 1

1

リスト項目の 1 つを削除するたびに、この関数を呼び出します。

function update() {
    var l = $('li.groupList').removeClass('rtm rbm').removeAttr('backgroundColor');

    l.filter(':even').css({backgroundColor: '#e4e4e4'});
    l.filter(':odd').css({backgroundColor: '#ededed'});
    l.first().addClass('rtm');
    l.last().addClass('rbm');
}
于 2011-02-03T17:29:07.600 に答える