在过滤同位素网格后重新应用jquery-match-height

may*_*ign 7 jquery jquery-isotope

我使用jquery-match-height来匹配同位素布局的网格项内部div的高度,这在同位素网格加载时非常有效.

但是,当我过滤网格时,matchheight脚本不再处理div,每个div都返回其原始高度.

我试过了:

  $grid.on( 'arrangeComplete', function() { 
   console.log("OK, arrangeComplete");
   $.fn.matchHeight._update();
   //$('.card-text').matchHeight(); //Here I tried simply re-initiating... no effect
  });
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

if (!$grid.data('isotope').filteredItems.length ) {
 $.fn.matchHeight._update();
}
Run Code Online (Sandbox Code Playgroud)

我根本无法获得匹配高度"refire"

may*_*ign 1

好吧,我完全不确定这是最优雅的方法,但它确实有效。

这里的关键是意识到新代码必须在过滤器完成后才运行,并且我应该只匹配可见元素的高度(因为过滤器不会删除与过滤器不匹配的项目,它只是将它们设置为“显示:无”

//Filter complete
$grid.on( 'arrangeComplete', function( event, filteredItems ) {
  //matchheight on the visible items 
  $('.item:visible').matchHeight(); 
  //And re-layout the grid  
  $grid.isotope('layout'); 
});
Run Code Online (Sandbox Code Playgroud)