javascript - 使用 jQuery 删除后更新交替列表行颜色

标签 javascript jquery css alternating

我正在使用 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() 方法删除列表项之一,颜色和半径不会更新。

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

这是因为浏览器没有收到列表数组更改的通知,还是我应该只使用 CSS 做的事情(即使用 li.groupList:nth-child(even) 等.)?

我开始使用 jQuery 的原因是因为我认为它比 CSS3 选择器更兼容跨浏览器(但如果您不这么认为,请赐教!)。

最佳答案

每当您删除列表项之一时调用此函数:

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');
}

关于javascript - 使用 jQuery 删除后更新交替列表行颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4889330/

相关文章:

javascript - 如何使一个div与一个div具有相同的高度

javascript - 在html5中获取javascript变量

javascript - 如何使用 JQuery 从列值数组创建 HTML 表

javascript - 向打印机发送数据

html - 文本裁剪到中心

css - Bootstrap : span inside span doesn't display right on Firefox and IE

WP 中的 CSS 下拉菜单

Javascript |用于替换当前窗口位置的链接/书签

javascript - 在 iframe 中打开一个 asp.net 页面

尽可能使用 CSS 实现 jQuery UI 平滑过渡