Sto utilizzando gli isotopi (v1) e ho creato un campo di ricerca dopo an example in a Pen.Filtri + Cerca con Isotopi Breaks Cerca?
Inizialmente funziona, tuttavia, se filtro la galleria Isotopo, il campo di ricerca smette di funzionare.
Credo che la funzione di ricerca continua a funzionare solo non filtra la galleria e non sono sicuro su come risolvere il problema. In effetti, non sono sicuro di quale sia il problema esatto in quanto non vengono emessi errori.
Here is a Fiddle con un esempio funzionante.
Qui è la ricerca, filtro e isotopi JavaScript:
var $container = $('.isotope'),
qsRegex,
filters = {};
$container.isotope({
itemSelector : '.element',
masonry : {
columnWidth : 120
},
getSortData : {
name : function ($elem) {
return $elem.find('.name').text();
}
},
filter: function() {
return qsRegex ? $(this).text().match(qsRegex) : true;
}
});
function searchFilter() {
qsRegex = new RegExp($quicksearch.val(), 'gi');
$container.isotope();
}
// use value of search field to filter
var $quicksearch = $('#quicksearch').keyup(debounce(searchFilter));
$('#reset').on('click', function() {
$quicksearch.val('');
searchFilter()
});
// store filter for each group
$('#filters').on('click', '.button', function() {
var $this = $(this);
// get group key
var $buttonGroup = $this.parents('.button-group');
var filterGroup = $buttonGroup.attr('data-filter-group');
// set filter for group
filters[ filterGroup ] = $this.attr('data-filter');
// combine filters
var filterValue = '';
for (var prop in filters) {
filterValue += filters[ prop ];
}
// set filter for Isotope
$container.isotope({ filter: filterValue });
});
// debounce so filtering doesn't happen every millisecond
function debounce(fn, threshold) {
var timeout;
return function debounced() {
if (timeout) {
clearTimeout(timeout);
}
function delayed() {
fn();
timeout = null;
}
setTimeout(delayed, threshold || 100);
}
}
Come posso risolvere il problema?
Nota: sto usando jQuery 2.1.1.
si può fare un violino? –
@DaveA - C'è un violino nella mia domanda. Appena sopra il mio codice c'è il link. – L84
@MohdDhiyaulhaq - Hai modificato la domanda e aggiunto il tag 'jsFiddle'. Non dovresti aggiungere quel tag, da [wiki tag jsFiddle] (http://stackoverflow.com/tags/jsfiddle/info): 'Questo tag dovrebbe essere usato quando si fa una domanda su jsFiddle, non perché la tua domanda contiene semplicemente un esempio ospitato su jsFiddle. – L84