각 행에는 카테고리 열과 하위 카테고리 열이있는 테이블이 있습니다. 사용자가 필터링 할 카테고리를 선택한 다음 관련이있는 하위 카테고리 만 표시하여 필터를 추가로 필터링 할 수있게해야합니다. 나는 이것이 선택 드롭 다운리스트 일 수 있고 하위 카테고리가 존재할 때만 두번째 드롭 다운리스트를 보여줄 것이라고 생각하고있다. 서버 측 스크립트 (예 : Remy Sharp의 솔루션 http://remysharp.com/2007/01/20/auto-populating-select-boxes-using-jquery-ajax/)를 사용하는 몇 가지 예제를 보았지만 엄격하게 클라이언트 측 jQuery 솔루션 만 필요합니다. 누구든지이 작업이나 예제를 수행하는 가장 좋은 방법에 대한 제안을 갖고 있습니까?jQuery로 필터 카테고리/하위 카테고리
1
A
답변
1
저는 Dan의 아이디어가 마음에 들면 그 부분을 확장했습니다. 이것을 텍스트 편집기에 붙여서 작동하는 것을 볼 수 있어야합니다.
기본적으로 TR에서는 클래스를 사용하여 표시하거나 숨기고 더 많은 수의 숨겨진 선택을 사용하여 하위 범주 그룹을 표시합니다.
<script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<select id="masterCategory">
<option value="all">All</option>
<option value="sandwiches">Sandwiches</option>
<option value="bagels">Bagels</option>
</select>
<div>
<select id="all">
<option value="all">All</option>
<option value="pastrami">Pastrami</option>
<option value="pbj">PBJ</option>
<option value="baconranch">Bacon & Ranch</option>
<option value="jalapeno">Jalapeno</option>
<option value="onion">Onion</option>
<option value="poppyseed">Poppyseed</option>
</select>
<select id="sandwiches" style="display: none">
<option value="sandwiches">All</option>
<option value="pastrami">Pastrami</option>
<option value="pbj">PBJ</option>
<option value="baconranch">Bacon & Ranch</option>
</select>
<select id="bagels" style="display: none">
<option value="bagels">All</option>
<option value="jalapeno">Jalapeno</option>
<option value="onion">Onion</option>
<option value="poppyseed">Poppyseed</option>
</select>
</div>
<table id="content">
<tr class="sandwiches pastrami pbj"><td>sandwiches pastrami pbj</td></tr>
<tr class="sandwiches baconranch"><td>sandwiches baconranch</td></tr>
<tr class="bagels jalapeno"><td>bagels jalapeno</td></tr>
<tr class="bagels onion poppyseed"><td>bagels onion poppyseed</td></tr>
</table>
<script type="text/javascript">
$(function(){
$('select').bind('change', function(){
var category = $(this).val();
$('table#content').find('tr').each(function(){
if($(this).hasClass(category) || category == 'all'){
$(this).show();
} else {
$(this).hide();
}
});
});
$('select#masterCategory').bind('change', function(){
$('select#' + $(this).val()).fadeIn().siblings().fadeOut();
});
});
</script>
0
따라서 선택 변경시 classifyCategories
을 실행할 수 있습니다. 물론 부모 카테고리와 일치하지 않는 선택 물을 숨기려면 무언가를 써야하지만 이는 행 분류에서 도움이 될 수 있습니다.
<table>
<tr class="topLevelCategoryA subCategoryC"><td>content</td></tr>
<tr class="topLevelCategoryB subCategoryC"><td>content</td></tr>
<tr class="topLevelCategoryD"><td>content</td></tr>
<tr class="topLevelCategoryZ subCategoryC"><td>content</td></tr>
</table>
function classifyCategories() {
var parentCategory = $('#mainSelect').val();
var subCategory = $('#mainSelect').siblings('select:visible').val();
var query = "." + parentCategory;
if(subCategory) {
query += "." + subCategory;
}
$('table tr').not(query).hide();
}
전제는 클래스 선택자를 사용합니다. $('table tr').not('.topLevelCategoryB.subCategoryC')
은 그 구성에만 일치합니다. 여기서는 $('table tr').not('.topLevelCategoryB')
으로 모든 하위 카테고리와 일치합니다.
+0
나는 잘 모르겠다. 선택 항목은 어떻게 설정됩니까? 이러한 클래스 이름을 선택 옵션의 값으로 사용합니까? – Keith
관련 문제
- 1. Magento 1.4.1 카테고리 필터
- 2. 워드 프로세서의 필터 카테고리
- 3. WordPress/jQuery - jQuery로 비디오 카테고리 쇼케이스
- 4. 사용자 그룹의 기본 작성자 또는 카테고리 필터
- 5. Joomla - 카테고리 및 하위 카테고리 캘린더
- 6. 카테고리 카테고리 제거 WordPress 카테고리 URL
- 7. Wordpress 카테고리/하위 카테고리
- 8. 카테고리 및 하위 카테고리
- 9. 카테고리
- 10. html 카테고리/하위 카테고리 최상위보기
- 11. Django - 카테고리 및 하위 카테고리
- 12. MVC -DropDownList - 카테고리 - 하위 카테고리
- 13. 장고, 카테고리 및 하위 카테고리
- 14. CakePHP의 하위 카테고리 및 카테고리
- 15. Wordpress> 카테고리 목록에서 특정 카테고리 제외
- 16. mysql 카테고리 및 하위 카테고리 목록
- 17. Magento는 카테고리 list.phtml에 하위 카테고리 설명을 표시합니다.
- 18. SQL select 문안 필터
- 19. 태그의 카테고리
- 20. 카테고리 구조
- 21. 필터
- 22. 칼만 필터 대 지수 필터
- 23. 필터 승인 대 액션 필터
- 24. jQuery로 특정 Wordpress 위젯 서식 지정하기
- 25. 고객 테이블의 2 개 카테고리 ID 중 하나를 사용하여 카테고리 테이블에서 카테고리 이름을 가져 오는 방법
- 26. Wordpress 루프 카테고리 목록을 PHP로 반향 출력
- 27. Apache Solr - 필터 쿼리에서 OR
- 28. Virtuemart (J 1.5!) 하위 카테고리 제품 카테고리 찾아보기 페이지
- 29. WordPress> 카테고리 카테고리를 제외한 맞춤 카테고리 목록 슬래브 일치
- 30. 카테고리 게시물 수
다른 방법으로는 DOM을 더 많이 사용하지만 전체적으로 코드가 적게 걸릴 수 있습니다. 범주 및 하위 범주와 함께 {object}를 사용하고 개체와 일부 .append() 매직을 사용하여 하위 범주를 채울 수 있습니다. 이 방법을 사용하면 기능에 대한 두 가지 선택에만 의존 할 수 있지만 동적으로 하나의 내용을 저글링 할 수 있습니다. –
아, 페이지 새로 고침시 "모두"로 재설정하려면 해당 항목에 "autocomplete = 'off'"를 입력해야합니다. –