SlickFilter не работает при использовании строк, как вы можете видеть здесь для примера.
Итак, самый простой обходной путь для этой проблемы состоит в том, чтобы сделатьотфильтруйте себя путем клонирования карусели, затем очистите ее и добавьте из клона слайды с CSS-классом, который вы хотите использовать в качестве фильтра. Здесь - это работающий jsfiddle. Вот код:
$(document).ready(function (){
var $slider = $( '.filtering' );
var $slider_clone = $slider.clone( true, true ); // add true, true to clone events too!
// Create a new clone for the slider items
var $new_slider = $slider_clone.clone( true, true );
init_slider();
$('.filtering').css("display","block");
// When someone clicks on a filter
$( '.tecidos-filter-button').on( 'click', function(){
var filter_name = 'tecido';
// Clear current slider
$slider.slick( 'unslick' ); // Remove slick
$slider.empty(); // Remove elements
// Show only filtered items
if( filter_name == "All" ) {
$slider.append( $new_slider.find( '.tecidos-item' ) );
} else {
//console.log("length: " + $new_slider.find( '.tecidos-item.' + filter_name ).length)
$slider.append( $new_slider.find( '.tecidos-item.' + filter_name ) );
}
// Slick slider init
init_slider();
});
});
function init_slider() {
$('.filtering').slick({
dots:false,
arrows:true,
slidesPerRow: 2,
rows: 3,
responsive: [
{
breakpoint: 760,
settings: {
slidesPerRow: 2,
}
}
]
});
}