Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.04.2014, 14:40
Аспирант
Отправить личное сообщение для alexmixaylov Посмотреть профиль Найти все сообщения от alexmixaylov
 
Регистрация: 14.09.2013
Сообщений: 70

Подскажите пожалуйста как написать правильно условие
Помогите плиз
Хочу сделать так, чтобы при выборе селекта
отображался соответствующий див, а остальные скрывались
у меня получается целая простыня для этого, но подозреваю, что должно быть решение намного проще
<div>
	<select id="material">
	  <option>Выберите вид материала</option>
	  <option value="bumaga">Бумага</option>
	  <option value="karton">Картон</option>
	  <option value="poliflex">Полимеры гибкие</option>
	  <option value="polifix">Полимеры жесткие</option>
	  <option value="steklo">Стекло</option>
	  <option value="alumin">Металл (алюминий)</option>
	  <option value="ferrum">Металл (жесть)</option>
	  <option value="derevo">Древесина</option>
	  <option value="other">Другие</option>
	</select>
</div>
<div style="clear:both">
	<div class="bumaga"><?php echo $this->renderPosition('bumaga', array('style' => 'filter.block')); ?></div>
	<div class="karton"><?php echo $this->renderPosition('karton', array('style' => 'filter.block')); ?></div>
	<div class="poliflex"><?php echo $this->renderPosition('poliflex', array('style' => 'filter.block')); ?></div>
	<div class="polifix"><?php echo $this->renderPosition('polifix', array('style' => 'filter.block')); ?></div>
	<div class="steklo"><?php echo $this->renderPosition('steklo', array('style' => 'filter.block')); ?></div>
	<div class="alumin"><?php echo $this->renderPosition('alumin', array('style' => 'filter.block')); ?></div>
	<div class="ferrum"><?php echo $this->renderPosition('ferrum', array('style' => 'filter.block')); ?></div>
	<div class="derevo"><?php echo $this->renderPosition('derevo', array('style' => 'filter.block')); ?></div>
	<div class="other"><?php echo $this->renderPosition('other', array('style' => 'filter.block')); ?></div>
</div>
Ответить с цитированием
  #2 (permalink)  
Старый 17.04.2014, 14:44
Аватар для nice_try
Профессор
Отправить личное сообщение для nice_try Посмотреть профиль Найти все сообщения от nice_try
 
Регистрация: 11.12.2013
Сообщений: 313

а какое у тебя решение?
Ответить с цитированием
  #3 (permalink)  
Старый 17.04.2014, 14:57
Профессор
Отправить личное сообщение для jsnb Посмотреть профиль Найти все сообщения от jsnb
 
Регистрация: 15.03.2014
Сообщений: 561

Ну так задаете id тому диву, в который остальные завернуты. На селект на событие change вешаете обработчик, который при изменении будет скрывать все div внутри того которому вы задали id (селектор вида: $('#divId>div') ), а потом брать выбранное значение селекта через this.value и показывать див-потомок с таким классом (селектор примерно такой: $('#divId>div.'+this.value) ).

Последний раз редактировалось jsnb, 17.04.2014 в 15:00.
Ответить с цитированием
  #4 (permalink)  
Старый 17.04.2014, 15:04
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

alexmixaylov,

Скрыть/показать элементы в зависимости от значения select ов (нескольких)
и 100500 в поиске по форуму
Ответить с цитированием
  #5 (permalink)  
Старый 17.04.2014, 15:28
Аспирант
Отправить личное сообщение для alexmixaylov Посмотреть профиль Найти все сообщения от alexmixaylov
 
Регистрация: 14.09.2013
Сообщений: 70

(function($){ 
$("#material")change(function () {

		var selected = $(this).val(); 

				switch($(this).val()){
				case 'bumaga': 
				$('.bumaga').addClass('show')
				break;
				case 'karton': 
				$('.karton').addClass('show')
				break;
			
				}
})
})(jQuery);
})(jQuery);

делаю так, что то не выходит
Ответить с цитированием
  #6 (permalink)  
Старый 17.04.2014, 15:42
Профессор
Отправить личное сообщение для jsnb Посмотреть профиль Найти все сообщения от jsnb
 
Регистрация: 15.03.2014
Сообщений: 561

$('#material').on('change', function() {
  $('#wrap>div').hide();
  if (this.value) $('#wrap>div.'+this.value).show();
});

При условии что у внешнего дива id="wrap"
Ответить с цитированием
  #7 (permalink)  
Старый 17.04.2014, 16:56
Аспирант
Отправить личное сообщение для alexmixaylov Посмотреть профиль Найти все сообщения от alexmixaylov
 
Регистрация: 14.09.2013
Сообщений: 70

Огромное спасибо
пару строчек кода и все ОК работает прекрасно
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вы относитесь к наркоманам? Maxmaxmaximus7 Оффтопик 7 05.02.2014 13:29
Как написать алгоритм выборки в javascript? Isaac Общие вопросы Javascript 13 06.02.2013 11:15
Как правильно задать условие:? dididima Общие вопросы Javascript 1 03.08.2011 01:11
как правильно написать регулярное выражение? Lucius Общие вопросы Javascript 5 17.04.2011 16:34
Подскажите пожалуйста, как сделать? BMWSauber Элементы интерфейса 2 27.01.2010 15:50