단순한 표시/숨기기 기능과 같은 Isotope와 같은 플러그인을 사용하지 않고 data-filter
속성을 기반으로 항목을 표시하거나 숨기는 기본 jQuery 클릭 기능이 있습니다. URL 해시이있는 경우 URL 필터를 사용하여 필터를 적용하고 해당 필터 버튼에 '활성'클래스를 추가하는 것도 좋습니다. 난, 아래에있는 내 접근 방식에서jQuery : URL 해시/단편 식별자를 사용하여 항목 표시/숨기기
<div class="item">
<a href="#" class="item-anchor" data-filter="apples">Item</a>
</div>
: 마크 업에서
, 그래서 같은 관련data-filter
와 anchor
요소를 포함하는 각각의 '항목'클래스 된 div의 격자,이 그 앵커 해시 문자열과 일치하고, 일치하는 .filter-button
요소에 활성 클래스를 추가하지 않는 모든 요소의 URL 해시를 얻을 숨기기 시도 : $(window).load(function() {
var hash = window.location.hash.substring(1);
if (hash) {
$('.item').each(function() {
$(this).children('.item-anchor').data('filter') !== hash;
}).hide();
$('a.filter-button[href="hash"]').addClass('active');
}
});
내가 this thread에서 약간의 지원을 가지고,하지만 내 경우에는 내가 조금 다릅니다. 흥미롭게도, 위의 코드는 모두.item
divs를 숨기고 .active
클래스를 원하는대로 추가하지 않으므로 여기서 잘못된 부분이 있는지 잘 모르겠습니다. 어떤 도움이라도 대단히 감사 드리며, 더 이상의 설명이 필요하면 알려 주시기 바랍니다.
@ nfn-neil; 나는 한 지점에서'filter' 함수를 사용하려고 시도 했었지만 적절하게하지 못했습니다 (즉, 부울을 반환했습니다). 하나의 다른 관련 질문 :'.item' 요소를 숨기지 않고 어떻게 숨길 수 있습니까? 해시/프래그먼트 값 *이'데이터 필터 '중 하나의 값과 일치하지 않으면? 내 접근 방식에 문제가 있다는 것을 깨닫고 있는데, 일치하는 필터가없는 URL에 해시 값을 추가하면 모든 항목이 숨겨집니다 ... 다시 한 번 감사드립니다! – nickpish