В настоящее время у меня есть некоторые проблемы с плагином jQuery isotope и функцией hashchange. У меня есть сетка div, и при загрузке страницы отображаются ТОЛЬКО grid-block-filter
div, нажатие на один из .grid-block-filter
div приводит к соответствующему контенту, добавление хэша к 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
как есть при загрузке страницы. Есть ли способ остановить это? Я не могу понять это. Любые предложения будут ценны!