Я пытаюсь отфильтровать мою галерею изотопной библиотекой. У меня есть список кнопок, который отлично работает в одиночку, и текстовое поле, которое отлично работает в одиночку. Я пытаюсь объединить их с фильтрами, но пока не повезло.
var qsRegex;
var selector = '*';
function debounce(fn, threshold) {
var timeout;
threshold = threshold || 100;
return function debounced() {
clearTimeout(timeout);
var args = arguments;
var _this = this;
function delayed() {
fn.apply(_this, args);
}
timeout = setTimeout(delayed, threshold);
};
}
$(window).load(function () {
var $container = $('.portfolioContainer');
$container.isotope({
filter: function () {
return qsRegex ? $(this).text().match(qsRegex) && selector : selector;
},
animationOptions: {
duration: 750,
easing: 'linear',
queue: false
}
});
var $quicksearch = $('#tbSearchBusiness').keyup(debounce(function () {
qsRegex = new RegExp($quicksearch.val(), 'gi');
$container.isotope();
}, 200));
$('.portfolioFilter a').click(function () {
$('.portfolioFilter .current').removeClass('current');
$(this).addClass('current');
selector = $(this).attr('data-filter');
$container.isotope();
return false;
});
});
Я хочу, чтобы они работали вместе. Как:
Когда я пишу слово, оно должно фильтровать его, если есть выбор из другого фильтра.
Или когда я фильтрую свой фильтр по категориям, он должен фильтровать его, в том числе, если есть какие-либо ключевые слова.