現在、jQuery isotope プラグインと hashchange 関数に問題があります。div のグリッドがあり、ページの読み込み時にのみgrid-block-filter
div が表示されます。div の 1 つをクリックする.grid-block-filter
と、関連するコンテンツが表示され、URL にハッシュを添付して、ユーザーが他の場所からナビゲートできるようにします。これはすべて正常に機能します。私の例ですが、私の問題を説明します:
jsFiddle (ハッシュ付き): http://jsfiddle.net/neal_fletcher/vcffM/9/show
jQuery:
$(document).ready(function () {
var $container = $('#main-grid');
if (location.hash != "") {
var hashfilter = "." + location.hash.substr(1);
} else {
var hashfilter = "*";
}
$container.imagesLoaded(function () {
$container.isotope({
filter: hashfilter + '.nav-block',
itemSelector: '.grid-block',
animationEngine: 'best-available',
masonry: {
columnWidth: 4
}
});
});
$('.grid-block-filter a').click(function () {
var selector = jQuery(this).attr('data-filter');
var prettyselector = selector.substr(1);
location.hash = prettyselector;
return false;
});
$(window).hashchange(function () {
if (location.hash != "") {
var hashfilter = "." + location.hash.substr(1);
} else {
var hashfilter = "*";
}
$container.imagesLoaded(function () {
$container.isotope({
filter: hashfilter,
itemSelector: '.grid-block',
animationEngine: 'best-available',
masonry: {
columnWidth: 4
}
});
});
});
});
たとえば をクリックするONE FILTER
と、関連するコンテンツが問題なく表示されますが、戻るボタンをクリックするとgrid-block-filter
、ページの読み込み時にそのまま表示されるのではなく、すべてのコンテンツが表示されます。とにかくこれを止める方法はありますか?私はそれを理解することはできません。どんな提案でも大歓迎です!