Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.05.2014, 11:36
Новичок на форуме
Отправить личное сообщение для Pasterrio Посмотреть профиль Найти все сообщения от Pasterrio
 
Регистрация: 23.05.2014
Сообщений: 4

Проблема с фильтрацией блоков
Господа, помогите пожалуйста с кодом.
Суть в чем: у меня имеется страница, на которой осуществляется двойная фильтрация блоков 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, 23.05.2014 в 12:31.
Ответить с цитированием
  #2 (permalink)  
Старый 23.05.2014, 11:50
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

Pasterrio,
Вопрос то в чём? и зачем checked в option ?
Ответить с цитированием
  #3 (permalink)  
Старый 23.05.2014, 12:03
Новичок на форуме
Отправить личное сообщение для Pasterrio Посмотреть профиль Найти все сообщения от Pasterrio
 
Регистрация: 23.05.2014
Сообщений: 4

первый option для проверки и вывода полностью всех блоков.

Вопос в том, чтобы сделать дополнительные блоки, которые в обычном состоянии скрыты, при выводе всех блоков тоже были бы скрыты, а выводились только при вызове конкретного value, для каждого блока свой.

Иными словами у меня происходит фильтрация блоков, и надо, чтобы после этой фильтрации появлялся дополнительный блок, который бы пояснял - что отфильтровано.
Ответить с цитированием
  #4 (permalink)  
Старый 23.05.2014, 12:19
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

Pasterrio,
сделай те ваши дополнительнные блоки -- опишите условия их появления/исчезновения и посмотрите какие атрибуты могут быть в optionhttp://htmlbook.ru/html/option
когда вы чётко сформулируите вопрос - больше шансов что вам помогут
Ответить с цитированием
  #5 (permalink)  
Старый 23.05.2014, 12:31
Новичок на форуме
Отправить личное сообщение для Pasterrio Посмотреть профиль Найти все сообщения от Pasterrio
 
Регистрация: 23.05.2014
Сообщений: 4

Спасибо, попробовал подредактировать, чтобы было понятнее.
Ответить с цитированием
  #6 (permalink)  
Старый 23.05.2014, 13:14
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

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>
Ответить с цитированием
  #7 (permalink)  
Старый 23.05.2014, 13:19
Новичок на форуме
Отправить личное сообщение для Pasterrio Посмотреть профиль Найти все сообщения от Pasterrio
 
Регистрация: 23.05.2014
Сообщений: 4

Спасибо огромное. То, что требуется!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрипт выравнивания высоты блоков razorg1991 Элементы интерфейса 13 15.01.2017 00:04
Удаление глюков при появлении и исчезании блоков Сершей jQuery 5 25.08.2013 03:20
Проблема с радио кнопками px379 Общие вопросы Javascript 8 29.07.2013 09:30
Проблема с animate для скрытых блоков Sintanial jQuery 4 29.11.2012 15:53
Проблема при скрытии блоков в Опере InviS (X)HTML/CSS 1 20.03.2011 12:43