Проблема с фильтрацией блоков
Господа, помогите пожалуйста с кодом.
Суть в чем: у меня имеется страница, на которой осуществляется двойная фильтрация блоков div. Появилась задача прикрутить к этой странице еще блоков, но при одном условии: эти блоки должны появляться только при конкретных значениях фильтра, в остальное время они должны быть скрыты. Даже когда на фильтре стоит значение отображения всех блоков. Код следующий:
<script type="text/javascript">
function filterDivs(){
var a1 = '.'+$('#menu option.paramA:selected').attr('value');
var b1 = '.'+$('#menu option.paramB:selected').attr('value');
if(a1=='.'){a1='';}
if(b1=='.'){b1='';}
$('#filterList div').show().hide();
$('#filterList div'+a1+b1).show();
}
$(document).ready(function(){
filterDivs();
$('#menu select').change(function(){
filterDivs();
});
});
</script>
<div> <select name="paramA" size="1"> <option class="paramA" name="paramA" value="">Все А</option> <option class="paramA" name="paramA" value="a1">Значение А1</option> <option class="paramA" name="paramA" value="a2">Значение А2</option> </select> <div class="clr"></div> </div> <div> <select name="paramB" size="1"> <option class="paramB" name="paramB" value="">Все B</option> <option class="paramB" name="paramB" value="b1">Значение B1</option> <option class="paramB" name="paramB" value="b2">Значение B2</option> </select> <div class="clr"></div> </div> <div id="filterList"> <div class="a1 b1"> Значение 1 </div> <div class="a1 b2"> Значение 2 </div> <div class="a2 b1"> Значение 3 </div> <div class="a2 b2"> Значение 4 </div> </div> Задача прикрутить блок, формата <div class="a1 b1"> Описание </div> который бы скрыт при выборе показа всех блоков, но при этом отображался бы при вызове параметра b1 |
Pasterrio,
Вопрос то в чём? и зачем checked в option ? |
первый option для проверки и вывода полностью всех блоков.
Вопос в том, чтобы сделать дополнительные блоки, которые в обычном состоянии скрыты, при выводе всех блоков тоже были бы скрыты, а выводились только при вызове конкретного value, для каждого блока свой. Иными словами у меня происходит фильтрация блоков, и надо, чтобы после этой фильтрации появлялся дополнительный блок, который бы пояснял - что отфильтровано. |
Pasterrio,
сделай те ваши дополнительнные блоки -- опишите условия их появления/исчезновения и посмотрите какие атрибуты могут быть в optionhttp://htmlbook.ru/html/option когда вы чётко сформулируите вопрос - больше шансов что вам помогут |
Спасибо, попробовал подредактировать, чтобы было понятнее.
|
Pasterrio,
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script>
$(function ()
{
function filterDivs(){
var aValue = $('select[name="paramA"]').val();
var bValue = $('select[name="paramB"]').val()
$('#filterList div').hide();
$('#filterList div'+aValue+bValue).show();
$('.b1').not('.a1, .a2')[bValue == '.b1'? 'show':'hide']()
}
filterDivs();
$('select').change(function(){
filterDivs();
});
}
)
</script>
</head>
<body>
<div>
<select name="paramA" size="1">
<option class="paramA" name="paramA" value="">Все А</option>
<option class="paramA" name="paramA" value=".a1">Значение А1</option>
<option class="paramA" name="paramA" value=".a2">Значение А2</option>
</select>
<div class="clr"></div>
</div>
<div>
<select name="paramB" size="1">
<option class="paramB" name="paramB" value="">Все B</option>
<option class="paramB" name="paramB" value=".b1">Значение B1</option>
<option class="paramB" name="paramB" value=".b2">Значение B2</option>
</select>
<div class="clr"></div>
</div>
<div id="filterList">
<div class="a1 b1">
Значение 1
</div>
<div class="a1 b2">
Значение 2
</div>
<div class="a2 b1">
Значение 3
</div>
<div class="a2 b2">
Значение 4
</div>
</div>
<div class="b1">
Описание
</div>
</body>
</html>
|
Спасибо огромное. То, что требуется! :)
|
| Часовой пояс GMT +3, время: 14:20. |