jquery-同位素过滤

时间:2012-01-18 15:16:04

标签: jquery-isotope

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

<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:

$(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;

   });

});

我做错了什么?

提前致谢

莫罗

1 个答案:

答案 0 :(得分:1)

使用完整的代码可以更容易地回答这个问题。

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

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

纠正后的JS看起来像这样:

// 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以显示结果。