首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jquery-同位素过滤

jquery-同位素过滤
EN

Stack Overflow用户
提问于 2012-01-18 23:16:04
回答 1查看 1.7K关注 0票数 0

我在试着用同位素过滤物品。这些项目位于不同的div中,但由于某些原因,过滤器只适用于第一个div。下面是我的代码:

代码语言:javascript
复制
<div id="articles">
   <div class="article-wrap">
      <div class="article cat-1"></div>
      <div class="article cat-2"></div>
      <div class="article cat-3"></div>
      ...
   </div>
   <div class="article-wrap">
      <div class="article cat-1"></div>
      <div class="article cat-2"></div>
      <div class="article cat-3"></div>
      ...
   </div>
</div>

我的javascript:

代码语言:javascript
复制
$(document).ready(function() {

   $('#articles .article-wrap').isotope( 'reloadItems' ).isotope({sortBy: 'class'});

   $('#filters li a').click(function(){

            var selector = $(this).attr('data-filter');

            $('#articles .article-wrap').isotope({ filter: selector });

            return false;

   });

});

我做错了什么?

提前感谢

毛罗

EN

回答 1

Stack Overflow用户

发布于 2013-01-03 22:15:26

有了完整的代码,回答这个问题会更容易。

您当前的代码缺少过滤器、链接、$('#filters li a'),问题可能是您忘记在选择器前面添加.

此外,如果这是您的所有javascript,您正在以错误的顺序调用同位素,即,您正在尝试重新加载项目之前,您已经初始化同位素。

修正后的JS如下所示:

代码语言:javascript
复制
// Only the line below has been altered, the rest is shown for completeness' sake
$('#articles .article-wrap').isotope({sortBy: 'class'}).isotope( 'reloadItems' );

$('#filters li a').click(function(){
    var selector = '.' + $(this).attr('data-filter');

    $('#articles .article-wrap').isotope({ filter: selector });

    return false;
});

我已经设置了a working jsFiddle来向您显示结果。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8912536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档