Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Упроситить условный оператор
 
 автор: immortal727   (15.05.2014 в 16:11)   письмо автору
 
 

Для скрытия и отображения блоков через selec использую следующую структуру
<select onchange="Selected(this)" aria-required="true" name="type" onChan>
             <option value="" selected="selected">Выберите тип забора</option>
             <option value="1">Деревянный забор</option>
             <option value="2">3D забор</option>
             <option value="3">Поликарбонат</option>
             <option value="4">Металлоштакетник</option>
             <option value="5">Сетка-рабица</option>
             <option value="6">Профнастил</option>
             <option value="7">Сетка в рамке</option>
             <option value="8">Сварной забор</option>
           </select>


И яваскрипт, времени вообще нет, заказчик торопит. И написал пока в самом простом варианте, но хочется упросить. А вот на яваскрипт только учусь

function Selected(a) {
          var label = a.value;
          if (label==1) {
            document.getElementById("Block1").style.display='block';
            document.getElementById("Block2").style.display='none';
            document.getElementById("Block3").style.display='none';
            document.getElementById("Block2").style.display='none';
            document.getElementById("Block3").style.display='none';
            document.getElementById("Block4").style.display='none';
            document.getElementById("Block5").style.display='none';
            document.getElementById("Block6").style.display='none';
            document.getElementById("Block7").style.display='none';
            document.getElementById("Block8").style.display='none';
          } else if (label==2) {
            document.getElementById("Block1").style.display='none';
            document.getElementById("Block2").style.display='block';
            document.getElementById("Block3").style.display='none';
            document.getElementById("Block4").style.display='none';
            document.getElementById("Block5").style.display='none';
            document.getElementById("Block6").style.display='none';


Сам понимаю что это берд. Но если так привыкнуть, то ужас будет. Лучше уж сразу по нормальному делать.

  Ответить  
 
 автор: Deed   (15.05.2014 в 16:55)   письмо автору
 
   для: immortal727   (15.05.2014 в 16:11)
 

http://jsbin.com/lilab/1/edit?js,output

  Ответить  
 
 автор: confirm   (15.05.2014 в 17:39)   письмо автору
 
   для: Deed   (15.05.2014 в 16:55)
 

Учите JS, да и поясняйте не знающему, что еще требует ваш код.

  Ответить  
 
 автор: psychomc   (16.05.2014 в 00:21)   письмо автору
 
   для: immortal727   (15.05.2014 в 16:11)
 

<script>
function Selected(a) { 
    var label = a.value; 
    var cont_blocks = document.getElementById('blocks');
    var blocks = cont_blocks.getElementsByTagName('div');
    for (var i = 0; i < blocks.length; i ++) {
        blocks[i].style.display = ((label - 1) == i) ? 'block' : 'none';
    }
}
</script>
<select onchange="Selected(this)" aria-required="true" name="type"> 
    <option value="" selected="selected">Выберите тип забора</option> 
    <option value="1">Деревянный забор</option> 
    <option value="2">3D забор</option> 
    <option value="3">Поликарбонат</option> 
    <option value="4">Металлоштакетник</option> 
    <option value="5">Сетка-рабица</option> 
    <option value="6">Профнастил</option> 
    <option value="7">Сетка в рамке</option> 
    <option value="8">Сварной забор</option> 
</select>
<div id="blocks">
    <div>1</div>
    <div>2</div>
    <div>3</div>
    <div>4</div>
    <div>5</div>
    <div>6</div>
    <div>7</div>
    <div>8</div>
</div>

  Ответить  
 
 автор: immortal727   (16.05.2014 в 13:31)   письмо автору
1.5 Мб
 
   для: psychomc   (16.05.2014 в 00:21)
 

Спасибо за код. Но вот при обновлении появляются вообще все блоки.
А вообще создаю конструктор заборов.
Суть в том, что при выборе чекбокса блок с картинкой забора становится активным. Но вот проблема, если не отключить что-нибудь и перейти на другой забор, то все блоки остаются, т.е. происходит наложение слоев. Как это можно исправить?
Для более ясности, высылаю весь архив, то что получилось пока.

  Ответить  
 
 автор: Deed   (16.05.2014 в 16:50)   письмо автору
2.9 Кб
 
   для: immortal727   (16.05.2014 в 13:31)
 

Аттач.
Изменен только index.html

  Ответить  
 
 автор: immortal727   (18.05.2014 в 22:55)   письмо автору
 
   для: Deed   (16.05.2014 в 16:50)
 

Ничего толком не изменилось. Как была проблема, так и осталась. Как же мне все же сделать обнуление блоков с картинками?
Результат http://kushiy.myjino.ru/konstruktor-zabora

  Ответить  
 
 автор: KPETuH   (19.05.2014 в 10:51)   письмо автору
 
   для: immortal727   (18.05.2014 в 22:55)
 

Сделать их невидимыми
display: none;

нет?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования