jQuery 过滤类别并突出显示其子级
我需要自定义一个脚本,用于将页面上的项目筛选为类别。 它几乎按照我想要的方式工作,但不完全是! 这是页面:http://inspiredworx.com/dev/octavius/projects.html
我想要什么: 当您单击页面底部的某个类别链接时,属于该类别子项的小“方块”的颜色将更改为深蓝色。
怎么了: 当我单击某个类别时,所有方块都会变为深蓝色。
我知道发生这种情况是因为“隐藏”的 css 类被应用于单击时的所有方块,而不仅仅是父元素的子元素(类别链接)。
有人可以帮我解决我的代码片段吗:
$(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') {
$('#portfolio .item .link.hidden').fadeIn('slow').removeClass('hidden');
} else {
$('#portfolio .item .link a').each(function() {
if(!$(this).hasClass(filterVal)) {
$(this).fadeIn('slow').addClass('hidden');
} else {
$(this).fadeIn('slow').removeClass('hidden');
}
});
}
return false;
});
});
提前致谢
I need to customize a script I have that filters items on a page, into categories.
It is almost working how I want it but not quite!
Here is the page: http://inspiredworx.com/dev/octavius/projects.html
What I want:
When you click on one of the category links at the bottom of the page, the little 'squares' that are children of that category, will change colour to a darker blue.
What is happening:
When I click a category, all of the squares change to a darker blue.
I understand this is happening because the css class of 'hidden' is being applied to all squares on click, and not just the children of the parent element (category link).
Could someone please help me out with my snippet here:
$(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') {
$('#portfolio .item .link.hidden').fadeIn('slow').removeClass('hidden');
} else {
$('#portfolio .item .link a').each(function() {
if(!$(this).hasClass(filterVal)) {
$(this).fadeIn('slow').addClass('hidden');
} else {
$(this).fadeIn('slow').removeClass('hidden');
}
});
}
return false;
});
});
Thanks in advance
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果我理解正确的话,在选择过滤器时,您想要淡出与过滤器不匹配的项目并淡入与过滤器匹配的项目。
If I'm understanding you correctly, on filter selection you want to fade out items not matching the filter and fade in items matching the filter.