Ich verwende Isotope (v1) und habe ein Suchfeld nach an example in a Pen erstellt.Filter + Suche mit Isotopen Breaks Suche?
Zunächst funktioniert es jedoch, wenn ich die Isotopengalerie filtere, dann funktioniert das Suchfeld nicht mehr.
Ich glaube, die Suchfunktion läuft immer noch nicht die Galerie und ich bin mir nicht sicher, wie Sie das Problem beheben. In der Tat bin ich mir nicht sicher, was das genaue Problem ist, da keine Fehler geworfen werden.
Here is a Fiddle mit einem Arbeitsbeispiel. Hier
ist die Such-, Filter- und Isotop 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);
}
}
Wie löse ich das Problem?
Hinweis: Ich verwende jQuery 2.1.1.
können Sie eine Fiddle machen? –
@DaveA - Es ist eine Geige in meiner Frage. Direkt über meinem Code befindet sich der Link. – L84
@MohdDhiyaulhaq - Sie haben die Frage bearbeitet und das Tag 'jsFiddle' hinzugefügt. Sie sollten dieses Tag nicht aus [jsFiddle-Tag-Wiki] (http://stackoverflow.com/tags/jsfiddle/info) hinzufügen: 'Dieses Tag sollte verwendet werden, wenn Sie eine Frage zu jsFiddle stellen, nicht weil Ihre Frage nur ein Beispiel enthält gehostet auf jsFiddle.' – L84