페이지에서 제품을 필터링하는 탐색 기능이있는 페이지에서 작업하고 있습니다. jQuery hashchange를 사용하여 링크를 클릭하고 브라우저의 뒤로 버튼을 눌렀을 때 탐색 링크에 현재 상태를 추가하고 제거합니다. 필터() 함수는 탐색 링크를 클릭 할 때만 작동하지만 브라우저의 뒤로 버튼을 클릭하거나 URL 끝에 앵커 태그가 포함되어 있으면 필터 기능을 구현하고 싶습니다.Jquery 필터 함수로 앵커 태그 및 브라우저 기록
다음은 페이지에 대한 링크입니다 :
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');
}
});
}
});
}
가 올바른 방향으로 점은 대단히 감사하겠습니다.
감사합니다 - 나는 .replace처럼 약간 조정할 필요 ('#', ''); 해시 변경 기능을 깨뜨 렸기 때문에 크로스 브라우저 친화적 인 방법을 찾아야했지만 이것이 바로 내가했던 것 이외의 것이었다. 많은 부분이 – user1258303
입니다.'#'을 제거하면 그것을 나눕니다. 아직 없으면'#'을 앞에 붙여야합니다. 다음과 같은 것 :'hash = (location.hash.match (/^# /))? location.hash : ('#'+ location.hash); –