私は、ページ上の製品をフィルターするナビゲーションを含むページで作業しています。私はjQueryのハッシュチェンジを使用して、リンクがクリックされたとき、およびブラウザの戻るボタンが押されたときにnavリンクに現在の状態を追加したり削除したりしました。フィルタ()関数は、しかし、唯一のナビゲーションリンクがクリックされたとき、私は、ブラウザの戻るボタンをクリックした場合、またはURLが最後にアンカータグが含まれている場合。フィルタ機能を実装したいと思います動作しますここでアンカータグとJqueryフィルター機能を使用したブラウザーの履歴
は、ページへのリンクです:
http://dl.dropbox.com/u/20585252/test/index.htm
そして、ここではreleventでの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');
}
});
}
});
}
右方向へのポイントは、非常に高く評価されるだろう。
おかげで - 私は.replaceように少し微調整するために必要な(「#」、「」 );私はこれは私が後だった正確に何だったことよりも、それはクロスブラウザに優しいが、他にする方法を把握する必要がありますのでなhashchange機能を破りました。その後、あなたはそれがまだ存在しない場合は、 ''#を付加する必要があり、 '#'それを破るを取り外す場合は多くは – user1258303
をapreciated。何かが好きです: 'hash =(location.hash.match(/ ^#/))? location.hash:( '#' + location.hash); ' –