第 n 个子 CSS 在使用 jQuery 删除行时不会重绘
nth-child css doesn't redraw when removing a row with jquery
我有一个jsfiddle在这里演示了这个问题:http://jsfiddle.net/xjmwY/
基本上,我有一个使用第 n 个子(奇数)规则的 css3 斑马条纹表。
.myTable tr {
background-color: #efefef;
}
.myTable tr:nth-child(odd) {
background-color: #fff;
}
当通过 jquery 删除一行时,我最终会得到两个颜色相同的后续行。有没有办法让桌子重新粉刷?
.fadeOut()
只是隐藏该行(将其淡化为透明,然后将显示设置为无),但它并没有真正删除它。为此,请使用.remove()
:
$("tr").click(function(event) {
event.preventDefault();
$("#row_2").remove();
});
js小提琴示例
如果无法删除行,则可以按可见行和不可见行筛选行:
$("#row_2").fadeOut(function () {
$('tr:visible').filter(":odd").css('background', '#fff');
});
这是因为您实际上并没有删除该行,而只是隐藏了它。
如果您希望更新样式,则需要在fadeOut()
完成后实际从 DOM 中删除该行。
根据你实际对隐藏行做什么,从 DOM 中删除它可能不是一种选择 - 例如,如果您想稍后再次切换它。
如果是这种情况,另一种解决方案可能是插入一个额外的隐藏行。这会将其放回奇数/偶数同步,而不会删除您隐藏的行。然后,您可以在重新显示隐藏行时再次删除多余的行。
如果你想为
前端用户保留淡入淡出的优雅,然后顺利地删除它,当然你可以像这样将淡出与回调删除链接在一起:
<table class="myTable">
<tr>
<td>
Bla bla :) I'm so striped <removebutton>Remove this row</removebutton>
</td>
</tr>
<tr>
<td>
Bla bla :) I'm so striped <removebutton>Remove this row</removebutton>
</td>
</tr>
<tr>
<td>
Bla bla :) I'm so striped <removebutton>Remove this row</removebutton>
</td>
</tr>
</table>
<script>
jQuery('.myTable tr td removebutton').on('click', function() {
jQuery(this).parent().parent().fadeOut(function() {
jQuery(this).remove();
});
});
</script>
<style>
.myTable tr:nth-child(odd) {
background-color: #EEEEEE;
}
</style>
相关文章:
- 无法使用jQuery从表中删除行
- 当行增加时自动递增序列号,并在 jQuery 中删除行时自动重新调整编号顺序
- 使用jQuery删除行
- 添加 jQuery UI 后,从表中删除行的函数不起作用
- 关闭 jquery 对话框后从表中删除行
- 使用 jQuery 从多个表中删除行
- 第 n 个子 CSS 在使用 jQuery 删除行时不会重绘
- 从我从循环(JQuery)中收集的表中删除行
- jQuery DataTables:多个表如何在不删除行的情况下复制行
- 加载文件,并在特定行之后删除javascript/jquery中的所有剩余行
- 如何使用jQuery删除行
- 为什么我只能删除数据表中的一些行?(jquery)
- Jquery和php删除行而不刷新页面
- 如何删除_POST后的空行JQuery Post PHP &Jquery
- 删除行从JQuery DataTable -但它返回一旦表被重绘.是我的. jsp数据源造成的吗?
- jQuery DataTable:删除行并重新加载
- 无法使用jquery从html表中删除行
- 使用Jquery Datatable Plugin按Id删除行
- Bootstrap 3:添加确认模式框jQuery内联删除行
- 删除行刷新页面jquery