사용자가 "브랜딩"을 클릭 할 때 브랜딩의 클래스 이름이 표시되고 나머지는 숨기기 만하면 내 포트폴리오 페이지에 SUPER 기본 필터링 시스템이 필요했습니다. 사용자가 인쇄물 디자인을 클릭하면 인쇄물 만 출력됩니다.Jquery Filter Plugin 빌드 해시 태그 지원
저는 동위 원소와 퀵 샌드를 사용했지만, 이번에는 효과가없는 매우 기본적인 방법을 원했습니다. 그래서 this script을 사용하기로 결정했습니다. jquery는 매우 간단합니다. 필터 링크 및 표시/숨기기와 동일한 클래스를 가진 포트폴리오 항목을 찾습니다. jquery는 다음과 같습니다.
$('ul#filter a').click(function() {
$(this).css('outline','none');
$('ul#filter .current').removeClass('current');
$(this).parent().addClass('current');
var filterVal = $(this).text().toLowerCase().replace(' ','-');
if(filterVal == 'all') {
$('ul#portfolio li.hidden').show().removeClass('hidden');
} else {
$('ul#portfolio li').each(function() {
if(!$(this).hasClass(filterVal)) {
$(this).hide().addClass('hidden');
} else {
$(this).show().removeClass('hidden');
}
});
}
return false;
});
내 헤더/nav에는 이러한 필터링 가능한 링크가 모두 포함되어 있습니다. 따라서 nav에서 "작업"아래에는 필터링 가능한 모든 객체가 있습니다. 사용자가 "브랜딩"을 클릭하면 모든 포트폴리오 항목이 표시되며 (브랜딩 항목이 아닌) 작업 페이지로 이동합니다. 이 jquery 스크립트는 해시 태그를 지원하지 않기 때문입니다. 즉, 필터링 된 포트폴리오의 각 상태에는 연관된 URL이 없습니다. 이 기능을 추가하려고하지만 실제로 어디에서 시작해야할지 모르겠습니다.
정확하게 내가 필요한 해결책 인 것처럼 보이는 hashchange plugin가 있음을 발견했습니다. 누군가 해시 태그에 대한 지원을 추가하거나이 해시 변경 플러그인과 함께 사용하는 방법에 대한 도움을받을 수 있습니까? 미리 감사드립니다!
다음은 위대한 예제 인 hashchange를 사용한 예입니다. http://benalman.com/code/projects/jquery-hashchange/examples/hashchange/#test1 – JCHASE11
제쳐두고로 : 왜 요소를 표시/숨기시겠습니까? * .hidden CSS 클래스를 추가/삭제 하시겠습니까? CSS 클래스가 충분하지 않습니까? – Tomalak
show/hide를 제거하면 스크립트가 작동하지 않습니다! 각 링크에 대해 해시/URL을 통합하는 방법에 대한 아이디어가 있습니까? – JCHASE11