Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Подскажите пожалуйста как написать правильно условие (https://javascript.ru/forum/jquery/46630-podskazhite-pozhalujjsta-kak-napisat-pravilno-uslovie.html)

alexmixaylov 17.04.2014 14:40

Подскажите пожалуйста как написать правильно условие
 
Помогите плиз :)
Хочу сделать так, чтобы при выборе селекта
отображался соответствующий див, а остальные скрывались
у меня получается целая простыня для этого, но подозреваю, что должно быть решение намного проще
<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>

nice_try 17.04.2014 14:44

а какое у тебя решение?

jsnb 17.04.2014 14:57

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

рони 17.04.2014 15:04

alexmixaylov,
:cray:
http://javascript.ru/forum/dom-windo...tml#post271084
и 100500 в поиске по форуму

alexmixaylov 17.04.2014 15:28

(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);

делаю так, что то не выходит

jsnb 17.04.2014 15:42

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

При условии что у внешнего дива id="wrap"

alexmixaylov 17.04.2014 16:56

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


Часовой пояс GMT +3, время: 01:18.