【发布时间】:2015-11-24 14:12:40
【问题描述】:
我正在使用过滤器和搜索框,两者都使用 isotope.js。过滤器和搜索独立工作正常,但是当我在使用过滤器后尝试搜索时,搜索不起作用。 两者都有一个同位素实例也无济于事。请给我一些我可以尝试的建议。 以下是这两个脚本的代码:
<script type="text/javascript">
$( function() {
// init Isotope
var $grid = $('.grid').isotope({
itemSelector: '.grid-item',
layoutMode: 'fitRows'
});
$('.filter').click(function() {
$('#loadMore').hide();
//alert("inside isotope script");
var filterValue = $( this ).attr('data-filter');
//alert(filterValue);
$grid.isotope({ filter: filterValue});
});
});
</script>
<!-- Script for search -->
<script type="text/javascript">
$( function() {
// quick search regex
var qsRegex;
// init Isotope
var $grid = $('.grid').isotope({
itemSelector: '.grid-item',
layoutMode: 'fitRows',
filter: function() {
return qsRegex ? $(this).text().match( qsRegex ) : true;
}
});
// use value of search field to filter
var $quicksearch = $('.quicksearch').keyup( debounce( function() {
$('#loadMore').hide();
//alert("key up");
qsRegex = new RegExp( $quicksearch.val(), 'gi' );
//alert(qsRegex);
$grid.isotope();
}, 200 ) );
});
// 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;
}
timeout = setTimeout( delayed, threshold || 100 );
}
}
</script>
【问题讨论】:
标签: jquery-isotope