Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Плавное появление и исчезновение двух блоков при выборе одного из них (https://javascript.ru/forum/misc/41899-plavnoe-poyavlenie-i-ischeznovenie-dvukh-blokov-pri-vybore-odnogo-iz-nikh.html)

ignernom 03.10.2013 14:31

Плавное появление и исчезновение двух блоков при выборе одного из них
 
Уважаемые знатоки,
наглядный пример тут http://fsd564.bget.ru/example2/index.html

Необходимо сделать, что бы при выборе варианта "Выбор 1" плавно раскрывался "БЛОК 1",
но при выборе варианта "Выбор 2" плавно раскрывался "БЛОК 2", а "БЛОК 1" при этом закрывался.
И обратно - при выборе варианта "Выбор 1" закрывался "БЛОК 2" и раскрывался "БЛОК 1"

<script src="jquery.js"></script>
 
<script type="text/javascript">
$(document).ready(function(){
    $('#show').click(function(){
        $('#layer').show('slow');
    });
    $('#show2').click(function(){
        $('#layer2').show('slow');
    });
});
</script>
 
<input type="radio" name="type" value="1" id="show">Выбор 1
<input type="radio" name="type" value="2" id="show2">Выбор 2<br>
<div ID="layer" style="display:none;">БЛОК 1</div>
<div ID="layer2" style="display:none;">БЛОК 2</div>


Дополнение: если можно, то желательно что бы изначально при открытии страницы уже стоял указатель на Выборе 1 с раскрытым "БЛОК 1"

animhotep 03.10.2013 14:40

добавьте .hide(); в функции клика

ignernom 03.10.2013 15:24

animhotep
нельзя ли поподробнее,
в javascript не разбираюсь совсем

animhotep 03.10.2013 15:33

<script src="jquery.js"></script>
 
<script type="text/javascript">
$(document).ready(function(){
    $('#show').click(function(){
        $('#layer2').hide();
        $('#layer').show('slow');
    });
    $('#show2').click(function(){
        $('#layer').hide();
        $('#layer2').show('slow');
    });
});
</script>
 
<input type="radio" name="type" value="1" id="show">Выбор 1
<input type="radio" name="type" value="2" id="show2">Выбор 2<br>
<div ID="layer" style="display:none;">БЛОК 1</div>
<div ID="layer2" style="display:none;">БЛОК 2</div>

ignernom 03.10.2013 16:12

animhotep премного благодарен за помощь:)

ignernom 15.10.2013 22:26

animhotep
Появилась проблема, при изменении типа выбора вариантов с "radio" на "select" второй код отказывается работать в Хроме (при этом он работает в Опере и Мозиле)

первый вариант http://fsd564.bget.ru/example2/index.html - работает везде

вот второй вариант http://fsd564.bget.ru/example2/index2.html - не хочет работать в Хроме.

<script src="jquery.js"></script>
 
<script type="text/javascript">
$(document).ready(function(){
    $('#show').click(function(){
        $('#layer2').hide();
		 $('#layer3').hide();
        $('#layer').show('slow');
    });
    $('#show2').click(function(){
        $('#layer').hide();
		$('#layer3').hide();
        $('#layer2').show('slow');
    });
	$('#show3').click(function(){
        $('#layer').hide();
		$('#layer2').hide();
        $('#layer3').show('slow');
    });
});
</script>
 
 <select name="email_known" style="width:150px" >
     <option selected="selected" value="Не выбрано" id="choice"> Выберите </option>
     <option value="1" id="show">Выбор 1</option>      
     <option value="2" id="show2">Выбор 2</option>
     <option value="3" id="show3">Выбор 3</option>	 
    </select><br>
<div ID="layer" style="display:none;">БЛОК 1</div>
<div ID="layer2" style="display:none;">БЛОК 2</div>
<div ID="layer3" style="display:none;">БЛОК 3</div>


Думаю проблема в click(function() , наверно ее нужно заменить на функцию аналогичную select, но как это сделать я не представляю

animhotep 16.10.2013 11:41

подход нужен другой. у селекта есть событие при изменении
$("select").change(function () {
 alert ( $(this).val() ); //здесь будет значение выбранного пункта 1,2,3
});

ignernom 16.10.2013 14:01

animhotep спасибо еще раз, разобрался


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