我正在处理一个带有导航的页面,该导航过滤页面上的产品。当单击链接和按下浏览器后退按钮时,我使用 jQuery hashchange 添加和删除导航链接的当前状态。但是,filter() 函数仅在单击导航链接时才起作用,我想在单击浏览器后退按钮或 url 末尾包含锚标记时实现过滤器功能。
这是该页面的链接:
http://dl.dropbox.com/u/20585252/test/index.htm
这是相关的 Jquery 部分:
$(document).ready(function(){
$(window).hashchange( function(){
var hash = location.hash;
$('#nav a').each(function(){
var that = $(this);
that[ that.attr( 'href' ) === hash ? 'addClass' : 'removeClass' ]( 'current' );
});
})
$(window).hashchange();
filter();
});
function filter() {
$('ul#nav a').click(function() {
var filterVal = $(this).attr('rel');
if(filterVal == 'all') {
$('ul.product li.hidden').show().removeClass('hidden');
} else {
$('ul.product li').hide().each(function() {
if(!$(this).hasClass(filterVal)) {
$(this).hide().addClass('hidden');
} else {
$(this).show().removeClass('hidden');
}
});
}
});
}
非常感谢正确方向的一点。