如果您希望 Javascript 触发的更改在重新加载或链接到页面时应用到页面,则 URL 需要包含一些内容,告诉 Javascript 在加载时应用过滤器。页面位置是最hash
常用的方法。
我建议您稍微分解一下onClickFilter
并更改页面位置的哈希:
var onClickFilter = function(event) {
updateWithFilterElement($(event.currentTarget));
}
var updateWithFilterElement = function(item) {
var activeFilters = [];
if (!item.hasClass('active')) {
filters.removeClass('active');
location.hash = '';
}
item.toggleClass('active');
// Filter by the currently selected filter
if (item.hasClass('active')) {
activeFilters.push(item.data('filter'));
location.hash = item.data('filter');
}
handler.wookmarkInstance.filter(activeFilters);
};
现在,当用户单击过滤器时,它会存储在 URL 中以供以后使用。加载图像并设置鼠标事件后,如果位置有哈希,则可以添加代码来更改过滤器:
if (location.hash != '') {
updateWithFilterElement($("*[data-filter='" + location.hash + "']"));
}
您可能应该添加一些错误检查以确保在尝试过滤之前确实存在这样的元素。