2010-05-11 64 views
0

看到:http://jasondaydesign.com/index2.html过滤jQuery的分裂列表

我使用easylistsplitter.js布局投资组合项目。不幸的是,我的过滤器不适用于所有的项目。它仅过滤第一列。

想法?

谢谢!

+1

想法:也许指定你的问题多一点不会是一个坏主意;-) – Joscha 2010-05-11 11:41:44

+1

是的,像︰easylistsplitter.js应该做什么,它做什么,而不是,为什么是错的,什么是过滤器你使用,是否有代码示例,你可以发布,哪个'列'你的意思是... – thomaspaulb 2010-05-11 11:50:01

+0

jquery.easylistsplitter.js - http://pastebin.com/jpZknPLt filterable.js - http:// pastebin。 easylistsplitter将列表拆分成列 - 它很好。不幸的是,我无法按类别过滤列表项目。当我使用过滤器时,它只能在由easylistsplitter分割的列表的第一列上工作。我假设这是因为它将列表分成多个列表,所以我不知道如何解决这个问题。 谢谢! – Jason 2010-05-11 12:32:36

回答

1

我不太明白你是如何试图使用listsplitter与砖石插件一起...

砖石插件设置布局和拆分布局成你想要怎么过多少列。如果您查看布局页面,砌体将布局分为4列:#primary.listCol1.listCol2,.listCol3.listCol4.last。因此,之后应用列表分割不起作用,因为列表已被分割。

如果您尝试对列表进行排序,您可以查看tinysort插件,或者如果您只是想要一个很好的短脚本,则需要对this answer中的一个稍作修改。


更新:我正在查看可筛选的脚本,但我找不到一个很好的简单解决方案。但我确实发现this filterable tutorial这似乎更容易理解(对我来说)。我修改了它稍微使动画与您的过滤脚本,这是结果:

$(document).ready(function() { 
    $('ul#portfolio-filter a').click(function() { 
    $(this).css('outline','none'); 
    $('ul#portfolio-filter .current').removeClass('current'); 
    $(this).parent().addClass('current'); 

    var filterVal = $(this).text().toLowerCase().replace(' ','-'); 

    if(filterVal == 'all') { 
     $('.portfolio li.hidden').animate({ width: 'show', opacity: 'show' }, 1000).removeClass('hidden'); 
    } else { 
     $('.portfolio li').each(function() { 
     if(!$(this).hasClass(filterVal)) { 
      $(this).animate({ width: 'hide', opacity: 'hide' }, 1000).addClass('hidden'); 
     } else { 
      $(this).animate({ width: 'show', opacity: 'show' }, 1000).removeClass('hidden'); 
     } 
     }); 
    } 
    return false; 
    }); 
}); 

你不应该改变任何东西,除了上述取代“jquery.filterablepack.js”内容码。

+0

抱歉 - 不使用砌体进行布局 - 使用easylist分隔符进行砌体样式布局。这种过滤效果使我可以切换。这是两种不同的布局(你帮我砌砖,我试图确定哪个最好。 – Jason 2010-05-11 15:04:22

+0

好吧,我用我发现的一些可过滤代码更新了我的答案,因为我找不到你必须工作的代码。 – Mottie 2010-05-12 05:18:07

+0

Fudgey - 你是一个非常丰富的知识,我非常感谢你的帮助,现在我必须弄清楚我更喜欢哪一种 - 带切换的列表过滤器,或者没有切换的石工过滤器...... – Jason 2010-05-12 12:55:15