如何将哈希历史记录添加到可过滤的投资组合中?

时间:2013-11-22 15:04:20

标签: javascript jquery html filtering

我正在为我的网站创建一个可过滤的投资组合。点击其中一个过滤器后,它会在我的网址末尾显示一个主题标签。例如,如果我点击设计,它将显示为www.yourdomain.com/#design。

是否可以使浏览器后退按钮与之一起工作?也就是说,如果我点击此链接,我会将#design添加到我当前的地址。单击后退按钮后,将删除#design哈希,并显示已选择的最后一页或过滤器。现在,后退按钮可以工作,但它只显示我在URL中选择但不在页面上的所有过滤器。

这有可能吗?

以下是我尝试使用http://www.jsfiddle.net/xnnnk/6/

的设计示例
$(document).ready(function () {
    $(".filter").click(function () {
        var filterText = $(this).attr('href').replace('#', '');
        $(".projectGrid").hide();
        $(".projectHolder").show();
        $(".projectHolder").not('.' + filterText).hide();
        $(".projectGrid").fadeIn(1500);
        $('.filter').not($(this).toggleClass('activeWork')).removeClass('activeWork');
    });
});

谢谢

1 个答案:

答案 0 :(得分:2)

您可以检测到哈希值更改,例如

$(window).on('hashchange', function() {
  console.log('changed to:'+document.location.hash);
});

并采取相应行动,可能会调用您发布的过滤代码。

这似乎得到了广泛的支持, http://caniuse.com/#search=hash

我所描述的简单演示,

http://jsfiddle.net/3nA2p/1

http://jsfiddle.net/3nA2p/1/show