我正在使用带有 jQuery BBQ 哈希历史的 jQuery isotope 插件。
这是我的代码:
HTML
<ul class="portfolio-categories">
<li class="current-tab"><a href="#filter=*">All</a></li>
<li><a href="#filter=.architecture">Architecture</a></li>
<li><a href="#filter=.arts-crafts">Arts & Crafts</a></li>
</ul>
jQuery
var portfolioContainer = $('#portfolio-container');
portfolioContainer.isotope({
itemSelector : '.portfolio-project',
layoutMode : 'fitRows'
});
$('.portfolio-categories a').click(function(e) {
$(this).parents('ul').find('li').removeClass('current-tab');
$(this).parent().addClass('current-tab');
});
// Keeps track of URL history for isotope categories
$(window).bind( 'hashchange', function( event ){
var hashOptions = $.deparam.fragment();
portfolioContainer.isotope( hashOptions );
}).trigger('hashchange');
这很好用。您可以使用正确的 URL 直接链接到过滤器,它的排序很好。问题是如果我单击一个条目#portfolio-container
并返回,菜单的活动状态将丢失并默认为All
,这是有道理的,因为current-tab
CSS 类仅在单击类别项时应用。
current-tab
有没有办法根据过滤器指向的 URL 将类重新应用于项目?谢谢。