【发布时间】:2014-05-19 21:19:27
【问题描述】:
我有以下代码,它根据添加到 li 元素的类来过滤列表。当所有项目都显示时,斑马条纹工作正常,但是当您过滤并假设其中一个列表项目被隐藏时,斑马条纹不同步。有没有办法解决这个问题?
我已经检查了这篇文章,但没有工作jQuery Table Zebra Striping with hidden rows
谢谢。
//Filter
$("#local-clubs-list li:visible:even").addClass("even");
$('ul#filter a').click(function() {
$(this).css('outline','none');
$('ul#filter .current').removeClass('current');
$(this).parent().addClass('current');
var filterVal = $(this).text().toLowerCase().replace(' ','-');
$('ul#local-clubs-list li').each(function() {
if(!$(this).hasClass(filterVal)) {
$(this).fadeOut('normal').addClass('hidden');
} else {
$(this).fadeIn('slow').removeClass('hidden');
}
$("#local-clubs-list li").removeClass("even");
$("#local-clubs-list li:visible:nth-child(even)").addClass("even");
});
return false;
});
$('ul#filter a:eq(0)').trigger('click');
我在 firbug 中看到的是
<li class="northern even">
<li class="northern">
<li class="north-dublin hidden even" style="display: none;">
<li class="northern">
<li class="northern even">
<li class="northern">
<li class="northern even">
<li class="northern">
<li class="northern even">
【问题讨论】:
-
$("#local-clubs-list li:visible:nth-child(even)").addClass("even");应该适用于选择器。您必须删除该类并在隐藏任何li之后重新运行它。 -
我似乎无法让它发挥作用。任何代码帮助将不胜感激
-
这在初始显示方面有效jsfiddle.net/Wp7SA/1
标签: jquery filter zebra-striping