如果您选择 class ,您将 在地址栏中Mishmash
看到。https://thedivtagguy.com/#filter=.mishmash
这部分运行良好,但如果您尝试转到我在上面向您展示的这个Mishmash类别 url,它只会突出显示过滤器类,而不会实际对网格进行排序。
编辑:这似乎断断续续地工作。
为什么这不起作用,代码似乎有效?
<script>
(function($) {
function getHashFilter() {
var hash = location.hash;
// get filter=filterName
var matches = location.hash.match( /filter=([^&]+)/i );
var hashFilter = matches && matches[1];
return hashFilter && decodeURIComponent( hashFilter );
}
$( function() {
var $grid = $('.isotope');
// bind filter button click
var $filters = $('#filters').on( 'click', 'li', function() {
var filterAttr = $( this ).attr('data-filter');
// set filter in hash
location.hash = 'filter=' + encodeURIComponent( filterAttr );
});
var isIsotopeInit = false;
function onHashchange() {
var hashFilter = getHashFilter();
if ( !hashFilter && isIsotopeInit ) {
return;
}
isIsotopeInit = true;
console.log(hashFilter);
// filter isotope
$grid.isotope({
// itemSelector: '.selector.col-md-6.col-lg-4',
filter: hashFilter
});
// set selected class on button
if ( hashFilter ) {
$filters.find('.active').removeClass('active');
console.log($filters.find('.active'));
$filters.find('[data-filter="' + hashFilter + '"]').addClass('active');
}
}
$(window).on( 'hashchange', onHashchange );
// trigger event handler to init Isotope
onHashchange();
});
})( jQuery );
其次,我尝试将这些链接添加到我的主菜单(这样网格可以从顶部导航,如果用户在其他页面上,它会重定向到主页并只过滤网格)并且我已经输入了完整的每个类别的 URL 作为链接,所以主菜单有Mishmash带有链接的项目https://thedivtagguy.com/#filter=.mishmash。如下图所示,出于某种原因,所有链接都处于活动状态,但使用它们进行导航毫无用处;只有地址栏中的 URL 发生变化而没有实际过滤。代码的哪一部分导致了这种情况的发生以及如何使其他链接处于非活动状态?
Qyouu
月关宝盒
相关分类