Javascript Jquery:将类添加到每一个可见元素中
我正在尝试创建一个动态公文包库,通过单击“类别”可以隐藏显示项目。除了在单击类别时向隐藏/显示的元素添加类之外,其他一切都可以正常工作 我目前有:Javascript Jquery:将类添加到每一个可见元素中,javascript,jquery,Javascript,Jquery,我正在尝试创建一个动态公文包库,通过单击“类别”可以隐藏显示项目。除了在单击类别时向隐藏/显示的元素添加类之外,其他一切都可以正常工作 我目前有: $(document).ready(function() { $('ul.filter a').click(function() { $(this).css('outline','none'); $('ul.filter .current').removeClass('current'); $(this).parent().addCla
$(document).ready(function() {
$('ul.filter a').click(function() {
$(this).css('outline','none');
$('ul.filter .current').removeClass('current');
$(this).parent().addClass('current');
var filterVal = $(this).text().toLowerCase().replace(' ','-');
if(filterVal == 'all') {
$('div.portfolio .hidden').fadeIn('slow').removeClass('hidden');
} else {
$('div.portfolio').each(function() {
if(!$(this).hasClass(filterVal)) {
$(this).fadeOut('normal').addClass('hidden');
} else {
$(this).fadeIn('slow').removeClass('hidden').addClass("show");
$('.portfolio:visible').each(function (i) {
if (i % 2 == 0) $(this).addClass("last"); // This is the part that doesn't seem to work
});
}
});
}
return false;
});
});
这部分代码似乎有问题:
$('.portfolio:visible').each(function (i) {
if (i % 2 == 0) $(this).addClass("last"); // This is the part that doesn't seem to work
});
基本上,我希望在我的公文包列表中每秒钟添加一个“可见”的类
有人吗
CSS
HTML
?
过滤菜单
<ul class="filter">
<li class="booking-systems"><a href="http://ee.dev/portfolio/category/booking-systems">Booking Systems</a></li>
<li class="buddypress"><a href="http://ee.dev/portfolio/category/buddypress">Buddypress</a></li>
<li class="cms"><a href="http://ee.dev/portfolio/category/cms">CMS</a></li>
<li class="content-management"><a href="http://ee.dev/portfolio/category/content-management">Content Management</a></li>
<li class="drupal"><a href="http://ee.dev/portfolio/category/drupal">Drupal</a></li>
<li class="e-commerce"><a href="http://ee.dev/portfolio/category/e-commerce">E-Commerce</a></li>
<li class="silverstripe"><a href="http://ee.dev/portfolio/category/silverstripe">Silverstripe</a></li>
<li class="wordpress"><a href="http://ee.dev/portfolio/category/wordpress">Wordpress</a></li>
</ul>
您需要使用:odd
选择器:
不确定如何在代码中实现它,但可能类似于$('.portfolio:odd')
或偶数$('.portfolio:visible:odd')
我马上在JSFIDLE中尝试一下
$("tr:even").addClass("even");
$("tr:odd").addClass("odd");
将产生“斑马条纹”般的效果。那么只需稍加修改即可:
$("tr:visible:even").addClass("even");
$("tr:visible:odd").addClass("odd");
但每次隐藏/取消隐藏任何元素时都必须调用它。。而且你还必须在。。大概是这样的:
$("tr").removeClass("even").removeClass("odd");
$("tr:visible:even").addClass("even");
$("tr:visible:odd").addClass("odd");
我认为你应该是个好人 过滤器菜单在哪里?:)没有在发布的HTML中看到它。这是我知道的完整代码。这不是我要找的。它必须在运行中应用于可见元素。我更改了脚本,因此每次单击链接时,所有“最后”类都将被删除,然后所有奇数可见的
。公文包类将再次添加类last
。(为了清晰起见,添加了红色边框,上面有一个last
类。另外,each()
也不是必需的。你是一个天才!非常感谢。不过我也踢了踢自己一下:)事实上,它工作不正常。转到您的网站,单击电子商务过滤器,然后单击内容管理。红色边框将显示在左侧而不是右侧;显然,最后一个类在fadeIn仍处于活动状态时被删除/添加。我把它变成了一个回调函数,这样所有的东西都会等到所有褪色的元素都完成动画制作。
$("tr:visible:even").addClass("even");
$("tr:visible:odd").addClass("odd");
$("tr").removeClass("even").removeClass("odd");
$("tr:visible:even").addClass("even");
$("tr:visible:odd").addClass("odd");