jQueryBBQでハッシュ履歴を持つjQueryアイソトーププラグインを使用しています。
これが私のコードです:
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に応じて、クラスをアイテムに再適用する方法はありますか?ありがとう。